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();
}
}
相关推荐
在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...
4. **JSP生命周期**:JSP在服务器端经历编译、初始化、服务和销毁四个阶段。在编译阶段,JSP会被转换为Servlet源代码,然后编译成Servlet。 5. **JSP动作标签**:除了`<%@ %>`,还有 `<jsp:include>`, `<jsp:...
Servlet API定义了Servlet的生命周期方法,如`init()`, `service()`, `destroy()`,以及Servlet容器如何管理和调用这些方法。servlet-api.jar通常作为开发时的依赖,而在部署时,服务器如Tomcat会提供其自身的实现。...
- **Servlet基本概念**:阐述Servlet的工作原理和生命周期。 - **Servlet配置与部署**:讨论web.xml文件的作用以及如何配置Servlet。 #### 第7讲:Servlet高级特性 - **Servlet通信**:介绍如何通过request对象在...
Servlet生命周期包括加载、初始化、服务、销毁等阶段,这符合面向对象设计中的对象创建和销毁的概念。此外,Servlet可以通过继承HttpServlet类并重写doGet、doPost等方法来实现特定的HTTP请求处理,这体现了面向对象...
6. **Filter和Listener**:Servlet API还提供了Filter和Listener接口,用于在请求到达Servlet之前进行预处理(Filter),或者监听Servlet生命周期及Web应用中的各种事件(Listener)。 7. **MVC模式**:Servlet常与...
过滤器在Servlet生命周期中扮演着重要的角色,它们允许开发者在请求到达目标Servlet之前或之后对请求和响应进行拦截和处理。在短信项目中,过滤器可能用于实现用户认证、数据校验、字符编码转换等功能。例如,可以...
在这个系统中,Spring可能被用来管理Bean的生命周期,处理事务,以及提供数据访问接口。 5. **Hibernate**:Hibernate是一个流行的ORM(对象关系映射)框架,它使得Java对象可以直接操作数据库,减少了手动编写SQL...
Servlet生命周期包括加载、初始化、服务、销毁四个阶段。开发时,我们通常会创建Servlet类,重写doGet或doPost方法以处理HTTP GET或POST请求。 **JSP的详细解释:** JSP将HTML模板和Java代码分离,使得页面设计更为...
4. **CDI(Contexts and Dependency Injection)**:提供了依赖注入框架,允许开发者轻松管理对象生命周期和依赖关系。 5. **WS-Security**:增强了Web服务的安全性,支持数字签名和加密。 6. **Annotations-driven ...
1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或者首次接收到Servlet请求时,会加载并初始化Servlet。初始化阶段可以重写`init()`方法,进行配置和资源的加载。...
此外,尽管本系统未采用框架集如Spring、Struts或Hibernate,但初学者可以通过学习这个项目,了解如何手动管理依赖和生命周期,以及如何组织代码以实现模块化。这有助于理解框架的工作原理,为进一步学习和掌握更...
它在Web环境中运行,执行生命周期方法如`init()`, `doGet()`, `doPost()`和`destroy()`。Servlet的主要职责是接收和响应用户的请求。 **JSP**: JSP(Java Server Pages)是HTML与Java代码的结合,实质上是动态生成...
Servlet生命周期包括加载、初始化、服务、销毁等阶段,且可以实现多线程处理,以提高效率。 2. **JSP**: JSP是Java EE平台的一部分,用于简化动态网页生成。与Servlet相比,JSP更侧重于视图层,让开发者可以通过...
在本课件中,你将学习如何创建Servlet,理解Servlet生命周期,以及如何通过`service()`方法来处理请求和响应。 2. **JSP**:JSP是Servlet的另一种形式,它侧重于视图层,使得开发者能更方便地创建动态网页。JSP页面...
J2EE servlet&jsp 练习二答案 学习使用Session和Cookie 开发一个简单的购物车; 开发一个简单的用户登录提示系统 设定Session生命周期; 开发一个下载文件的Java EE Web应用; 开发一个Session监听器
在本教程中,韩顺平老师将详细讲解Servlet的生命周期、服务方法、请求和响应对象的使用,以及如何处理HTTP请求和响应。同时,"UserLogin"项目提供了登录功能的实现,涵盖了用户认证、会话管理等关键知识点,有助于...
**Servlet生命周期** Servlet经历初始化、服务、销毁三个阶段。初始化时,Servlet实例被创建;服务阶段,Servlet处理多个请求;当Web应用关闭或Servlet不再需要时,销毁Servlet。 **学习资源** "Jsp Servlet教程...