问题:12月 07, 2023 11:45:34 上午 org.apache.catalina.core.StandardContext reload
信息: 已开始重新加载名为[/22080829crm]的上下文
12月 07, 2023 11:45:34 上午 org.apache.jasper.servlet.TldScanner scanJars
信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
12月 07, 2023 11:45:34 上午 org.apache.catalina.core.StandardContext reload
信息: 已完成重新加载名为/22080829crm的上下文
12月 07, 2023 11:45:41 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: 在路径为[/22080829crm]的上下文中,servlet[servlet.CustomerAddServlet]的Servlet.service()引发异常
java.lang.NullPointerException: Cannot invoke "bean.UserBean.getUserId()" because "userBean" is null
at servlet.CustomerAddServlet.doGet(CustomerAddServlet.java:65)
at servlet.CustomerAddServlet.doPost(CustomerAddServlet.java:79)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at filter.filter.doFilter(filter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:832)
代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>添加客户</title>
<script type="text/javascript" src="js/laydate/laydate.js"></script>
<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript"
src="js/lhgdialog/lhgdialog.js?skin=idialog"></script>
<script type="text/javascript">
$(function() { //---------当页面加载-------------
laydate.render({
elem:"#txtBirthday"
});
$("#btnAdd").click(function(){
//客户姓名不为空
var customerName= $.trim($("#txtCustomerName").val());
if(customerName==0){
alert("客户姓名不能为空!");
return;
}
//客户级别不能为空
var selCustomerFlag= $.trim($("#selCustomerFlag").val());
if(selCustomerFlag==-1){
alert("客户级别不能为空!");
return;
}
if(confirm("确认添加该用户信息莫?")){
$("#frmAddCustomer").submit();
}
});
});
</script>
<link href="images/skin.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
background-color: #F8F9FA;
}
-->
</style>
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="17" height="29" valign="top"
background="images/mail_leftbg.gif"><img
src="images/left-top-right.gif" width="17" height="29" /></td>
<td width="935" height="29" valign="top"
background="images/content-bg.gif"><table width="100%"
height="31" border="0" cellpadding="0" cellspacing="0"
class="left_topbg" id="table2">
<tr>
<td height="31"><div class="titlebt">添加新客户</div></td>
</tr>
</table></td>
<td width="16" valign="top" background="images/mail_rightbg.gif"><img
src="images/nav-right-bg.gif" width="16" height="29" /></td>
</tr>
<tr>
<td height="71" valign="middle" background="images/mail_leftbg.gif"> </td>
<td valign="top" bgcolor="#F7F8F9"><table width="100%"
height="138" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="13" valign="top"> </td>
</tr>
<tr>
<td valign="top"><table width="98%" border="0" align="center"
cellpadding="0" cellspacing="0">
<tr>
<td class="left_txt">当前位置:业务管理 >> 客户信息管理>>
添加新客户</td>
</tr>
<tr>
<td height="20"><table width="100%" height="1" border="0"
cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr>
<td></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" height="55" border="0"
cellpadding="0" cellspacing="0">
<tr>
<td width="10%" height="55" valign="middle"><img
src="images/user-info.gif" width="54" height="55"></td>
<td width="90%" valign="middle"><span class="left_txt2">在这里,您可以添加新的客户。
</span></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><table width="100%" height="31" border="0"
cellpadding="0" cellspacing="0" class="nowtable">
<tr>
<td class="left_bt2"> </td>
</tr>
</table></td>
</tr>
<tr>
<td>
<form id="frmAddCustomer" action="CustomerAddServlet" method="post">
<table width="100%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td width="20%" height="30" align="right" class="left_txt2">客户姓名:</td>
<td width="32%" height="30"><input
name="txtCustomerName" type="text" id="txtCustomerName"
size="30" /></td>
<td width="45%" height="30" class="left_txt">请输入客户姓名(必填)</td>
</tr>
<tr>
<td height="30" align="right" class="left_txt2"
bgcolor="#f2f2f2">联系电话:</td>
<td height="30" bgcolor="#f2f2f2"><input type="text"
id="txtPhone" name="txtPhone" size="30" /></td>
<td height="30" class="left_txt" bgcolor="#f2f2f2">请输入该客户的联系方式</td>
</tr>
<tr>
<td height="30" align="right" class="left_txt2">客户级别:</td>
<td height="30"><select id="selCustomerFlag" name="selCustomerFlag">
<option value="-1">-- 请选择客户级别 --</option>
<option value="0">普通客户</option>
<option value="1">重要客户</option>
</select></td>
<td height="30" class="left_txt">请选择该客户的标记级别(必填)</td>
</tr>
<tr>
<td height="30" align="right" bgcolor="#f2f2f2"
class="left_txt2">客户生日:</td>
<td height="30" bgcolor="#f2f2f2"><input type="text"
id="txtBirthday" name="txtBirthday"
size="30" /></td>
<td height="30" bgcolor="#f2f2f2" class="left_txt">请选择该客户的生日</td>
</tr>
<tr>
<td height="30" align="right" class="left_txt2">联系地址:</td>
<td height="30"><input type="text" id="txtAddress"
name="txtAddress" size="30" /></td>
<td height="30" class="left_txt">请输入该客户的联系地址</td>
</tr>
<tr>
<td height="30" align="right" bgcolor="#f2f2f2"
class="left_txt2">备注:</td>
<td height="30" bgcolor="#f2f2f2"><input type="text"
id="txtRemarks" name="txtRemarks" size="30" /></td>
<td height="30" bgcolor="#f2f2f2" class="left_txt">如有备注信息,请输入</td>
</tr>
<tr>
<td height="30" align="right" class="left_txt2"> </td>
<td height="50"><input type="submit"
value=" == 确认 == " id="btnAdd" /></td>
<td height="30" class="left_txt"> </td>
</tr>
</table>
</form>
</td>
</tr>
</table></td>
</tr>
</table></td>
<td background="images/mail_rightbg.gif"> </td>
</tr>
<tr>
<td valign="middle" background="images/mail_leftbg.gif"><img
src="images/buttom_left2.gif" width="17" height="17" /></td>
<td height="17" valign="top" background="images/buttom_bgs.gif"><img
src="images/buttom_bgs.gif" width="17" height="17" /></td>
<td background="images/mail_rightbg.gif"><img
src="images/buttom_right2.gif" width="16" height="17" /></td>
</tr>
</table>
</body>
</html>
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.CustomerBean;
import bean.UserBean;
import dao.CustomerDao;
import tools.DateHelper;
import tools.ScriptHelper;
/**
* Servlet implementation class CustomerAddServlet
*/
@WebServlet("/CustomerAddServlet")
public class CustomerAddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CustomerAddServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String customerName=request.getParameter("txtCustomerName").trim();
String phone=request.getParameter("txtPhone").trim();
String address=request.getParameter("txtAddress").trim();
String remarks=request.getParameter("txtRemarks").trim();
int flag=Integer.parseInt(request.getParameter("selCustomerFlag"));
String birthdayString=request.getParameter("txtBirthday").trim();
CustomerBean model=new CustomerBean();
model.setCustomerName(customerName);
model.setPhone(phone);
model.setAddress(address);
model.setFlag(flag);
model.setRemarks(remarks);
if(!birthdayString.equals("")) {
Date birthday=DateHelper.ConvertStringToDate(birthdayString,"yyyy-MM-dd");
model.setBirthday(birthday);
}
CustomerDao customerDao=new CustomerDao();
UserBean userBean=(UserBean)request.getSession().getAttribute("CurrentLoginUser");
int result=customerDao.add(model, userBean.getUserId());
if(result>0) {
response.sendRedirect("CustomerListServlet");
}
else {
out.println(ScriptHelper.AlertAndBack("添加失败!"));
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import bean.UserBean;
import dao.UserDao;
import tools.EncryptHelper;
/**
* Servlet implementation class UserServlet
*/
@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private ServletRequest session;
/**
* @see HttpServlet#HttpServlet()
*/
public UserServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
HttpSession session =request.getSession();
String account = request.getParameter("txtAccount");
String pwd = request.getParameter("txtPassword");
String password=EncryptHelper.md5(pwd);
UserDao userdao = new UserDao();
if(userdao.checkUser(account,password)){
session.setAttribute("LoginSucces", "OK");
userdao.updateUser(account);
UserBean userbean=userdao.getModel(account);
session.setAttribute("CurrentLoginUser", userbean);
response.sendRedirect("admin/index.html");
}else {
request.setAttribute("LoginErrorInfo", "账号或密码错误!");
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}