`

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

    博客分类:
  • j2ee
 
阅读更多

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 {

 @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();
 }

 
}

分享到:
评论

相关推荐

    J2EE servlet&jsp 练习二答案

    J2EE servlet&jsp 练习二答案 学习使用Session和Cookie 开发一个简单的购物车; 开发一个简单的用户登录提示系统 设定Session生命周期; 开发一个下载文件的Java EE Web应用; 开发一个Session监听器

    jsp servlet 入门学习资料-新手一看就懂

    10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 ...

    小区物业管理系统web项目,带Mysql数据库sql文件,带配置说明书,采用mvc设计模式,使用html,js,jsp等

    1、 Servlet容器:Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP(JSP本质上是一个Servlet)的生命周期,以及管理它们的共享数据。 2、 Tomcat服务器:Tomcat 是一个免费的开放源代码的Servlet容器...

    J2EE中文版指南 CHM格式 带全文检索

    处理servlet生命周期事件 156 指定事件监听类 157 处理错误 157 共享信息 157 使用域对象 157 控制共享资源的并发入口 158 访问数据库 159 初始化Servlet 160 编写Service方法 160 通过request取得信息 161 构造...

    韩顺平sevlet,jsp视频教程知识点.txt

    视频描述: (-) servlet体系结构的介绍(二) servlet的网络拓扑结构(三) servlet的几个实例(四) servlet的生命周期(五) 一个简单的用户登录系统 韩顺平 j2ee视频实战教程servlet第2讲(下集).wmv 视频描述-) servlet...

    J2EE应用开发详解

    39 3.6 反射机制在Hibernate中的应用 42 3.7 小结 46 第4章 Servlet技术 47 4.1 Servlet简介 47 4.1.1 Servlet的特点 47 4.1.2 Servlet的优势 48 4.1.3 Servlet的工作过程 49 4.1.4 Servlet的生命周期 50 4.2 开发和...

    j2ee:这是 j2ee 示例活动的主要存储库

    在会话生命周期和事件上实现侦听器。 可用于计算登录的总尝试次数。 在会话生命周期和事件上实现侦听器。 计算总活动会话数。 在会话生命周期和事件上实现侦听器。 单击任何网页时通过重定向实现超时。 排除会话...

    javaEE j2ee 大学考试题库,j2ee开发面试题库-1

    2. 一个 servlet 的生命周期不包括( )方法。 A. init()方法 B. destroy()方法 C. service()方法 D. invalidate()方法 3. 给定如下代码片段: request.setAttribute("name","zhang"); response.sendRedirect(...

    第二章-RMI

    J2EE 应用程序一般分为四层:客户层、Web 层、业务层和企业信息层 J2EE应用程序的组件有:EJB组件、...J2EE 平台定义了在应用程序开发和部署生命周期中多个不同的角色,如应用程序组件提供者、应用程序汇编者和部署者

    jsp从入门到高级编程

    10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 ...

    JSP高级教程

    10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 ...

    JSP高级编程

    JSP是一种如日中天的新型Internet/Intranet开发语言,可以在多种操作系统平台和多种Web服务器下使用。本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中...

    从J2SE到J2EE知识点介绍

    3. 生命周期及状态转换 84 4. 线程调度 85 5. 线程同步 92 三. Jsp 101 (一) myeclipse上配置Tomcat服务器 101 (二) Jsp+servlet+bean版HelloWorld概览 105 (三) Jsp基本页面标签 116 1. 标签 116 2. contentType...

    java面试题

    说出servlet生命周期? 答:servlet实例化时调用init方法,得到请求时调用service方法,service方法自动派遣doget或dopost方法,最后当实例销毁时调用destroy方法。 error和exception有什么区别? 答:error是指错误...

    java视频教程Day01 免费

    19. Servlets Life Cycle (Servlet生命周期) 20. Resources Accessing(Servlet资源获取) 21. Persistent States in HttpServlets(Servlet状态持久化) 22. Filter Programming (Filter编程) 23. Web ...

    超级有影响力霸气的Java面试题大全文档

    9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当...

Global site tag (gtag.js) - Google Analytics