在使用AddUserServlet的时候request.getParameter("userName")获取的一直是NULL。在需要添加的表里所有属性获取的都是NULL。
package y2javaee.xmal1.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import y2javaee.xmal1.common.Validate;
import y2javaee.xmal1.entity.Book;
import y2javaee.xmal1.entity.Users;
import y2javaee.xmal1.operation.BookBo;
import y2javaee.xmal1.operation.UserBo;
/**
* 处理通讯录user注册功能的Servlet
*/
public class AddUserServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//中文处理
request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
**//获取用户输入数据,就是这里的出问题
String userName=Validate.validStringNull(request.getParameter("userName"));
System.out.println("姓名:" + request.getParameter("userName"));
String password=Validate.validStringNull(request.getParameter("password"));
System.out.println("姓名:" + request.getParameter("password"));
String realName=Validate.validStringNull(request.getParameter("realName"));
Validate e = new Validate();
String sex = e.validStringNull(request.getParameter("sex"));
System.out.println("姓名:" + request.getParameter("sex"));
String role=Validate.validStringNull(request.getParameter("role"));
//封装数据
System.out.println("aaa:" + userName);
Users users=new Users();
users.setUserName(userName);
users.setPassword(password);
users.setRealName(realName);
users.setSex(sex);
users.setRole(role);
users=(Users)request.getSession().getAttribute("users");
System.out.println(request.getParameter("userName"));
//创建通讯录的业务类对象,并调用添加方法
UserBo userBo=new UserBo();
int count=userBo.insertUser(users);
System.out.println("count");
//PrintWriter对象用于直接向输出流中输出数据。
PrintWriter out=response.getWriter();
if (count > 0) {
System.out.println("bbbb:" + count);
//添加成功
out.print("<script type='' language='javascript'>alert('添加成功。');location.href='addUser.jsp'; </script>");
}else{
//添加失败
System.out.println("cccc:");
out.print("<script type='' language='javascript'>alert('添加失败。');history.go(-1); </script>");
}
/* flush() 是把缓冲区的数据强行输出, 主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。
*/
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}
对应的adduser的jsp如下
<%@ page language="java" import="y2javaee.xmal1.entity.Users" pageEncoding="gb2312" contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>用户表</title>
<META http-equiv=Content-Language content=zh-cn>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK href="images/enter.css" type=text/css rel=stylesheet>
</head>
<BODY style="BACKGROUND-IMAGE: url(images/2e_bg.jpg)">
<DIV align=center>
<TABLE style="BORDER-COLLAPSE: collapse" height=576 cellPadding=0
width=990 border=0>
<TR>
<TD width=230>
<!-- left.html -->
<%@include file="left.jsp"%>
<!-- end left.html -->
</TD>
<TD width="677" valign="top">
<table width="656" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10" colspan="3"></td>
</tr>
<tr>
<td colspan="3">
<img src="images/33e_top1.jpg" width="656" height="17">
</td>
</tr>
<tr>
<td colspan="3">
<OBJECT id="obj7" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="34" width="656" border="0" classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000">
<PARAM NAME="movie" VALUE="images/you.swf">
<PARAM NAME="menu" VALUE="false">
<PARAM NAME="quality" VALUE="High">
<PARAM NAME="wmode" VALUE="transparent">
<embed src="images/33e_top11.swf"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" name="obj7" width="656"
height="34" quality="High" wmode="transparent"></OBJECT>
</td>
</tr>
<tr>
<td width="2%">
<IMG height=519 src="images/33e_left.jpg" width=13 border=0>
</td>
<td width="95%" align="center" valign="top" bgcolor="#FFFFFF">
<!-- banner.html -->
<%@include file="banner.jsp"%>
<!-- end banner.html -->
<!-- main.jsp -->
<form name="add" method="post" action="AddUserServlet">
<table id="Table_01" width="99.99%" border="0" cellpadding="0"
cellspacing="0"
style="font-size:12px; font-family:Verdana, Arial, Helvetica, sans-serif;">
<tr>
<td valign="top" background="image/flower/tl.jpg">
<img src="../images/spacer.gif" width="138" height="1" />
</td>
<td valign="top" background="image/flower/bg.jpg"> </td>
<td valign="top" background="image/flower/m_bg.jpg">
<img src="image/flower/tr.jpg" width="80" height="40" />
</td>
</tr>
<tr>
<td valign="top" background="image/flower/m_tl.jpg"> </td>
<td width="100%" valign="top"
background="image/flower/bg.jpg"
style="height:200px;padding:0 0 70px 30px;">
<TABLE width="100%" style="cellpadding: 0px; cellspacing: 0px; margin-top: 0px; margin-Left: 0px; table-layout: fixed;WORD-BREAK: break-all; WORD-WRAP: break-word">
<TR>
<TD style="color:#4c4743;line-height:160%;" valign="top" width="20%">
用户名:
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top" width="30%">
<input type="text" name="userName" size="15" />
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top"
width="20%">
性别:
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top" width="30%">
<select name="sex">
<option value="男">男</option>
<option value="女">女</option>
</select>
</TD>
</TR>
<TR>
<TD style="color:#4c4743;line-height:160%;" valign="top"
width="30%">
密码:
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top">
<input type="text" name="password" size="15" />
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top"
width="30%">
真实姓名:
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top">
<input type="text" name="realName" size="15" />
</TD>
</TR>
<TR>
<TD style="color:#4c4743;line-height:160%;" valign="top"
width="30%">
角色:
</TD>
<TD style="color:#4c4743;line-height:160%;" valign="top" colspan="3">
<select name="role">
<option value="1">用户</option>
<option value="2">管理员</option>
</select>
</TD>
</TR>
<TR>
<TD align="right"> </TD>
<TD style="color:#4c4743;line-height:160%;" valign="top" width="30%"><input type="submit" value="提交" onClick="event.preventDefault(); window.location.href='AddUserServlet';"/></TD>
<TD style="color:#4c4743;line-height:160%;" valign="top" colspan="2"><input type="reset" value="重置" /></TD>
</TR>
</TABLE>
</td>
<td width="47" valign="top" background="image/flower/m_bg.jpg"> </td>
</tr>
</table>
</form>
<!-- end main.jsp -->
</td>
<td width="3%">
<img src="images/33e_right.jpg" width="21" height="519">
</td>
</tr>
<tr>
<td colspan="3">
<img src="images/33e_down.jpg" width="656" height="15">
</td>
</tr>
</table>
</TD>
<TD width=85>
<!-- tag.jsp -->
<%@include file="tag.jsp"%>
<!-- end tag.jsp -->
</TD>
</TR>
</TABLE>
</DIV>
<!-- foot.jsp -->
<%@include file="foot.jsp"%>
<!-- end foot.jsp -->
</body>
</html>
web.xml如下
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>AddUserServlet</servlet-name>
<servlet-class>y2javaee.xmal1.servlet.AddUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddUserServlet</servlet-name>
<url-pattern>/AddUserServlet</url-pattern>
</servlet-mapping>
输出的时候
都是空值,在页面添加用户一直都是添加失败