request.getRequestDispatcher("../empinfo.jsp").forward(request, respons)空指针异常
由jsp提交的表单数据,传递给servlet处理,servlet处理完后返回原来的jsp界面,弹出操作成功或失败的提示框。现在报错说有空指针,不知道该怎么办,下面是我的代码:
在empinfo.jsp页面提交表单数据:
<form method="post" action="../emp_addservlet">
<table width="327" height="320" border="1" align="center">
<tr>
<td width="143" align="center" valign="middle">工号</td>
<td width="168">
<label for="add_emp_no"></label>
<input type="text" name="add_emp_no" id="add_emp_no" />
</td>
</tr>
<tr>
<td align="center" valign="middle">姓名</td>
<td><input type="text" name="add_emp_name" id="add_emp_name" /></td>
</tr>
<tr>
<td align="center" valign="middle">性别</td>
<td><input type="text" name="add_emp_gender" id="add_emp_gender" /></td>
</tr>
<tr>
<td align="center" valign="middle">电话</td>
<td><input type="text" name="add_emp_tell" id="add_emp_tell" /></td>
</tr>
<tr>
<td align="center" valign="middle">职务</td>
<td><input type="text" name="add_emp_job" id="add_emp_job" /></td>
</tr>
<tr>
<td align="center" valign="middle">部门编号</td>
<td><input type="text" name="add_dep_no" id="add_dep_no" /></td>
</tr>
<tr>
<td align="center" valign="middle">入职日期</td>
<td><input type="text" name="add_emp_hiredata" id="add_emp_hiredata" /></td>
</tr>
<tr>
<td height="41" align="center" valign="middle">
<input type="reset" name="rewrite" id="rewrite" value="重置" />
</td>
<td align="center" valign="middle">
<input type="submit" name="add_button" id="add_button" value="确定" />
</td>
</tr>
</table>
</form>
在servlet中接收表单数据,插入数据库,servlet的代码:
public class emp_addservlet extends HttpServlet {
/**
* Constructor of the object.
*/
public emp_addservlet() {
super();
}
/**
* 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 {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");//设置请求字符编码格式
response.setContentType("text/html;charset=UTF-8");
PrintWriter outPrintWriter = response.getWriter();
/**以下是获得表单提交过来的值*/
String emp_no =request.getParameter("add_emp_no");
String emp_name = request.getParameter("add_emp_name");
String emp_gender= request.getParameter("add_emp_gender");
String emp_tell =request.getParameter("add_emp_tell");
String emp_job = request.getParameter("add_emp_job");
String dep_no= request.getParameter("add_dep_no");
String emp_hirdata = request.getParameter("add_emp_hiredata");
/**以下代码将获得的表单值封装到用户信息对象中*/
employeinfo employer = new employeinfo();
employer.setNo(emp_no);
employer.setName(emp_name);
employer.setGender(emp_gender);
employer.setTell(emp_tell);
employer.setJob(emp_job);
employer.setDep_no(dep_no);
employer.setHiredata(emp_hirdata);
/**一下代码判断表单值是否合法*/
if(emp_no==null||emp_name==null)
return;
if(emp_no.equals("")||emp_name.equals(""))
{return;}
/*一下是调用数据库操作*/
int num = addempinfodao.getInstance().insertemployer(employer);//插入信息
/**一下代码判断表单值是否合法*/
if(emp_no==null||emp_name==null)
return;
if(emp_no.equals("")||emp_name.equals(""))
{return;}
/*一下是调用数据库操作*/
int num = addempinfodao.getInstance().insertemployer(employer);//插入信息
/*以下是判断数据库操作结果,成功插入需要在原JSP页面弹出插入成功的提示框,插入失败弹出失败的提示框*/
String message ="false";
if(num<0){
System.out.println("插入失败");
message="false";
request.setAttribute("insertalter",message);
request.getRequestDispatcher("../user/empinfo.jsp").forward(request, response);
}
else{
System.out.println("插入成功");
message ="true";
request.setAttribute("insertalter",message);
request.getRequestDispatcher("../empinfo.jsp").forward(request, response); //这是第81行
}
}
public void init() throws ServletException {
}
}
在原来的empinfo.jsp中添加如下代码:
<script type="text/JavaScript">
<%
String message=(String)request.getAttribute("message");
if("true".equals(message)){
%>
alert("添加成功!");
<%
}
%>
报错如下:
插入成功
2016-7-27 14:42:26 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet emp_addservlet threw exception
java.lang.NullPointerException
at hrmanager.servlet.emp_addservlet.doPost(emp_addservlet.java:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)