j2ee17:servlet01:jsp结束,servlet的配置和生命周期

1.appliation应用程序:session是一个会话,只针对一个用户(客户端),appliaction针对所有客户端,application封装的对象所有客户端都能用。application的类型是servletContent。
 因此session是局部变量,application是全局变量。
2.session:在第一次请求时产生,对象和客户端一一对应
  application:在启动服务器的时候产生,所有客户端共享这个数据。服务器停止的时候application对象销毁。
3.out是jspwrite的对象,request,response,application,pageContent:只是当前页可以访问,是pageContent类型的对象
  application.getRealpath("image");获得绝对路径。application同样有setgetAttribute方法
4..jsp页面在tomcat的work(缓存)中以.java的形式出现,既然有.java就要现有.class。
5.jsp执行分成两部分:第一部分是静态标签,由客户端浏览器执行。第二部分是java代码,由服务器执行。
  jsp的执行过程:1.jsp先翻译成.java文件。2.java文件在编译成.class文件。3.服务器去执行class文件。总结:因此第一次执行jsp页面的时候比较慢,以后比较快。
开始servlet
6.jsp是把对客户端的请求和响应都嵌套在jsp页面上,servlet是把对客户端的请求和响应都放在.java(文件)类中。
7.ctrl+shift+o导包,所有包
8.在servlet中的out的类型是printWriter
9.注册servlet,也就是在配置文件中配置一个servlet,用来产生客户端向服务器端发送请求的路径
10./"是转意的意思,表示'
11.jsp和servlet的区别和联系:
  联系: ---请求的接收、处理、响应
  区别:将Java代码和静态标签分离,
  servlet的有点:将进行逻辑处理的java代码用servlet来封装
   jsp的有点:用jsp标签进行响应(jsp用来显示数据)。
12.servlet的开发过程:
   只要是请求就要用url发送
   ---1.继承httpservlet,重写service()方法。此方法不用程序员调用,是服务器自己调用的
   ---2.在web.xml文件中注册一个servlet,关键是得到url路径
13.servlet的执行过程:
     在启动服务器的时候会先自动加载web.xml文件,也就是通过反射解析servlet-class文件,此时在servlet-class所对应的java类中在执行的时候会调用无参的构造方法(我们可以先在这个java类中写一个反射要用的无参构造)。
     1.首先获得请求路径
     2.对请求的路径进行解析(截取出8080后面的路径名)
     3.在内存中(也就是web.xml中)进行查找,在servlet-mapping中查找响应的url对应的name(保证跟8080后面的路径相同)
     4.在web.xml中查找servlet中进行查找name对应的class,然后通过反射进行实例化,调用service方法
14.servlet的声明周期:
    ---1.实例化(通过反射创建对象,也就是无参的构造方法)
    ---2.init()初始化
    ---3.service()方法完成服务。也就是接收请,处理请求,响应请求
    ---4.destroy()方法销毁。(服务器停止的时候)
  注意:1,3,4的过程只会执行一次
15.在配置文件里写load-on-startup的话,就会在启动服务器的时候对类进行初始化。
  在配置文件里写init-param,然后在init()方法中写super.getInitParameter方法获得这个初始化参数。

--------------------------------------------------------------------------------------

第二:相关代码部分

1.

package com.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.dao.UserInfoDao;
import com.dao.impl.UserInfoDaoImpl;
import com.entity.UserInfo;

/**
 * jsp,servlet的区别和联系
 *
 * 联系:
 *    都可以完成请求的接收,处理,响应 
 * 区别:
 *   将java代码和静态标签分离
 *   将进行逻辑处理的java代码用servlet进行封装--优点
 *   用jsp进行用户请求的响应的结果显示--优点
 *
 * servlet的执行过程:
 *       开发过程 1 进行HttpServlet,重写service方法
 *              2 在web.xml文件中注册一个servlet,注册servlet的请求路径
 *               <servlet>
        <servlet-name>userServlet</servlet-name>
      <servlet-class>com.action.UserServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>userServlet</servlet-name>
        <url-pattern>/userServlet</url-pattern>
      </servlet-mapping>
     
         执行过程:
          
 * ***/
public class UserServlet extends HttpServlet {

扫描二维码关注公众号,回复: 419459 查看本文章

 @Override
 protected void service(HttpServletRequest request,
   HttpServletResponse response)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
   //1
     request.setCharacterEncoding("UTF-8");
     String uname=request.getParameter("uname");
     String upwd=request.getParameter("upwd");
    
     //2
     UserInfoDao dao = new UserInfoDaoImpl();
     //当前登录用户
     UserInfo u = dao.userLogin(uname,upwd);
     int online=1;
     //3
     if(u!=null)
     {
      //将当期登录用户保存session对象
     HttpSession session = request.getSession();
      session.setAttribute("user",u);
      //session.setMaxInactiveInterval(30);
      //session.invalidate();  //让当前会话对象session对象销毁
      //session.removeAttribute("user");
      //response.sendRedirect("addStudent.html");
      ServletContext application = super.getServletContext();
      
      Object obj = application.getAttribute("online");
      if(obj!=null)
      {
       online=(Integer)obj;
       online++;
      }
     

2.

package com.action;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.dao.StudentDao;
import com.dao.impl.StudentDaoImpl;
import com.entity.Student;

public class StudentServlet extends HttpServlet
{
 private String name;
 public StudentServlet()
 {
  System.out.println("=============StudentServlet");
 }
 
 @Override
 public void destroy() {
  // TODO Auto-generated method stub
  System.out.println("=================destroy()");
 }

 @Override
 public void init() throws ServletException {
  // TODO Auto-generated method stub
  this.name=super.getInitParameter("name");
  System.out.println("=================init()"+this.name);
 }

 @Override
 protected void service(HttpServletRequest request,
   HttpServletResponse response)
   throws ServletException, IOException {
  System.out.println("=================service()");
  StudentDao  dao = new StudentDaoImpl();
  int pageNum=1;
     int pageSize=3;
     //StudentDao dao=new StudentDaoImpl();
     
     int mp = dao.getMaxPage(pageSize);
     
     String pn = request.getParameter("pn");
     if(pn!=null)
     {
      pageNum=Integer.parseInt(pn);
     }
     if(pageNum<1)
     {
      pageNum=1;
     }
     
     if(pageNum>mp)
     {
      pageNum=mp;
     }
     
     
     //List<Student> stuList=dao.searchAllStu();
     List<Student> stuList=dao.seachStudent(pageNum,pageSize);
     
     HttpSession session = request.getSession();
    
     session.setAttribute("stuList", stuList);
     session.setAttribute("pageNum", pageNum);
     session.setAttribute("mp", mp);
     response.sendRedirect("index.jsp");
    
 }
 

}

      
      application.setAttribute("online",online); 
      //online++;
      response.sendRedirect("addStudent.html");
      
      //application.getRealPath("imgs");
     }
     else
     {
     PrintWriter out = response.getWriter();
      out.print("<script>alert('用户名或者密码错误...');history.back();</script>"); 
     }
    
    
 }

 @Override
 public void destroy() {
  // TODO Auto-generated method stub
  super.destroy();
 }

 @Override
 public void init() throws ServletException {
  // TODO Auto-generated method stub
  super.init();
 }

 
}

猜你喜欢

转载自1601844782.iteye.com/blog/2273999