`

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

 
}

分享到:
评论

相关推荐

    j2ee20:servlet04监听器(监听四大web域)(用于访问人数的统计)、mvc模式的引入

    在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...

    j2ee12:jsp01:jsp页面嵌套java代码、<%@ %>的使用

    4. **JSP生命周期**:JSP在服务器端经历编译、初始化、服务和销毁四个阶段。在编译阶段,JSP会被转换为Servlet源代码,然后编译成Servlet。 5. **JSP动作标签**:除了`&lt;%@ %&gt;`,还有 `&lt;jsp:include&gt;`, `&lt;jsp:...

    j2ee相关jar包servlet.jar和jspapi.jar

    Servlet API定义了Servlet的生命周期方法,如`init()`, `service()`, `destroy()`,以及Servlet容器如何管理和调用这些方法。servlet-api.jar通常作为开发时的依赖,而在部署时,服务器如Tomcat会提供其自身的实现。...

    韩顺平 j2ee视频实战教程》servlet + jsp的视频

    - **Servlet基本概念**:阐述Servlet的工作原理和生命周期。 - **Servlet配置与部署**:讨论web.xml文件的作用以及如何配置Servlet。 #### 第7讲:Servlet高级特性 - **Servlet通信**:介绍如何通过request对象在...

    j2ee模板,servlet+jsp

    Servlet生命周期包括加载、初始化、服务、销毁等阶段,这符合面向对象设计中的对象创建和销毁的概念。此外,Servlet可以通过继承HttpServlet类并重写doGet、doPost等方法来实现特定的HTTP请求处理,这体现了面向对象...

    J2EE中文API(Servlet)

    6. **Filter和Listener**:Servlet API还提供了Filter和Listener接口,用于在请求到达Servlet之前进行预处理(Filter),或者监听Servlet生命周期及Web应用中的各种事件(Listener)。 7. **MVC模式**:Servlet常与...

    j2ee:servlet练习短信项目,包含过滤器的使用、EL表达式和JSTL标准标签库的使用

    过滤器在Servlet生命周期中扮演着重要的角色,它们允许开发者在请求到达目标Servlet之前或之后对请求和响应进行拦截和处理。在短信项目中,过滤器可能用于实现用户认证、数据校验、字符编码转换等功能。例如,可以...

    J2EE实例:电子商城系统.rar

    在这个系统中,Spring可能被用来管理Bean的生命周期,处理事务,以及提供数据访问接口。 5. **Hibernate**:Hibernate是一个流行的ORM(对象关系映射)框架,它使得Java对象可以直接操作数据库,减少了手动编写SQL...

    j2ee+servlet+jsp

    Servlet生命周期包括加载、初始化、服务、销毁四个阶段。开发时,我们通常会创建Servlet类,重写doGet或doPost方法以处理HTTP GET或POST请求。 **JSP的详细解释:** JSP将HTML模板和Java代码分离,使得页面设计更为...

    J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 )

    4. **CDI(Contexts and Dependency Injection)**:提供了依赖注入框架,允许开发者轻松管理对象生命周期和依赖关系。 5. **WS-Security**:增强了Web服务的安全性,支持数字签名和加密。 6. **Annotations-driven ...

    J2EE Servlet 2.5中文文档

    1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或者首次接收到Servlet请求时,会加载并初始化Servlet。初始化阶段可以重写`init()`方法,进行配置和资源的加载。...

    J2EE网上订餐系统(JSP+Servlet+mysql)

    此外,尽管本系统未采用框架集如Spring、Struts或Hibernate,但初学者可以通过学习这个项目,了解如何手动管理依赖和生命周期,以及如何组织代码以实现模块化。这有助于理解框架的工作原理,为进一步学习和掌握更...

    J2EE&Servlet.doc

    它在Web环境中运行,执行生命周期方法如`init()`, `doGet()`, `doPost()`和`destroy()`。Servlet的主要职责是接收和响应用户的请求。 **JSP**: JSP(Java Server Pages)是HTML与Java代码的结合,实质上是动态生成...

    servlet + jsp +j2ee API

    Servlet生命周期包括加载、初始化、服务、销毁等阶段,且可以实现多线程处理,以提高效率。 2. **JSP**: JSP是Java EE平台的一部分,用于简化动态网页生成。与Servlet相比,JSP更侧重于视图层,让开发者可以通过...

    J2EE,servlet,jsp等课件

    在本课件中,你将学习如何创建Servlet,理解Servlet生命周期,以及如何通过`service()`方法来处理请求和响应。 2. **JSP**:JSP是Servlet的另一种形式,它侧重于视图层,使得开发者能更方便地创建动态网页。JSP页面...

    J2EE servlet&jsp 练习二答案

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

    韩顺平_j2ee实战视频教程Servlet和JSP部分源码

    在本教程中,韩顺平老师将详细讲解Servlet的生命周期、服务方法、请求和响应对象的使用,以及如何处理HTTP请求和响应。同时,"UserLogin"项目提供了登录功能的实现,涵盖了用户认证、会话管理等关键知识点,有助于...

    Jsp Servlet教程专栏+J2EE编写企业应用教程

    **Servlet生命周期** Servlet经历初始化、服务、销毁三个阶段。初始化时,Servlet实例被创建;服务阶段,Servlet处理多个请求;当Web应用关闭或Servlet不再需要时,销毁Servlet。 **学习资源** "Jsp Servlet教程...

Global site tag (gtag.js) - Google Analytics