Servlet生命周期
servlet第一次请求时被创建对象
生命周期的第一阶段:init方法初始化方法。只执行一次,并且必须执行完成后才能执行其他方法
生命周期的第二阶段:调用service方法,service通过请求行获取请求方式:通过判断之后,调用doGet
doPost;覆盖doPost或者doGet方法。功能:获取请求参数,调用业务层-调用dao方法,响应页面
生命周期的第三阶段:web应用卸载,服务器关闭,servlet被销毁,destroy()
多线程
一个Servlet对象,多线程的处理模式
多线程的线程安全变量
一个线程改变变量的值,其他线程使用时是改变后的值,这种变量叫线程不安全的变量
线程安全的变量是指,自己使用的变量,一般定义到doGet方法或doPost方法中
ServletConfig
表示封装当前Servlet的初始化参数
配置文件配置初始化参数 web.xml
<servlet>
<servlet-class>tedu.LifeServlet</servlet-class>
<servlet-name>driverName</servlet-name>
<init-param>
<param-name>driverClassName</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
</servlet>
获取初始化参数的值得方法
this.getServletConfig().getInitParameter(“driverClassName”);
ServletContext
表示web应用上下文对象
有且只有一个
生命周期:和web应用一样
<%
//登陆一次记一次
Integer count=(Integer)application.getAttribute("count");
//第一次为空,设置为1
if(count==null){
count=1;
}else{
count++;
}
application.setAttribute("count", count);
out.print(count);
%>
一个Servlet处理多个请求
1.客户端定义一个参数传值
2.服务器端通话获取参数值,通过值调用不同的方法输出不同的内容
<script type="text/javascript">
function fun1(action){
//表示按钮事件,提交的处理成学
location='UserServlet?method='+action;
}
</script>
</head>
<body>
<input type="button" value="add" onclick="fun1('add');">注册<br>
<input type="button" value="update" onclick="fun1('update');">修改个人信息<br>
<input type="button" value="delete" onclick="fun1('delete');">删除<br>
<input type="button" value="select" onclick="fun1('select');">查询<br>
</body>
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action=request.getParameter("method");
try {
if(action.equals("add")){
register(request,response);
}else if(action.equals("update")){
updateUser(request,response);
}else if(action.equals("delete")){
removeUser(request,response);
}else if(action.equals("select")){
findAllUser(request,response);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//注册
protected void register(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.getWriter().print("register");
}
//更改用户信息
protected void updateUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.getWriter().print("updateUser");
}
//删除用户信息
protected void removeUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.getWriter().print("removeUser");
}
//查询用户信息
protected void findAllUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.getWriter().print("findAllUser");
}