Java EE

本文详细介绍了Java EE的核心技术,包括Servlet的请求处理过程、生命周期、配置方式以及核心接口。此外,还讲解了会话跟踪技术,如Cookie、Session、URL重写和隐藏表单域。进一步探讨了JSP的工作原理、脚本元素、指令、动作和内置对象。同时,阐述了EL表达式和JSTL标签库的使用。最后,讨论了Filter和Listener在Java EE中的角色以及MVC模式在Web开发中的应用。
摘要由CSDN通过智能技术生成

Java EE

选择题:10分
填空题:5分
论述题:25分
分析题:20分
编程题:40分

一、绪论

1、Web 应用架构

C/S(Client/Server,客户端/服务器)结构

B/S(Browser/Server,浏览器/服务器)结构

2、Web 项目基础目录结构

1)src

javabean:项目实体类和JavaBean

dao:项目数据操作类

filter:项目过滤器

listener:项目监听器

servlet:项目Servlet程序

util:项目工具类

2)WebContent(Eclipse)

css:项目样式表

images:项目图片素材

js:项目JS文件

error.jsp:异常处理页面

index.jsp:网站首页

3)WEB-INF

lib:项目第三方库

web.xml:项目配置文件

二、Servlet

1、Servlet 请求处理和响应过程

  1. 接收HTTP请求;
  2. 获取请求信息,如请求头和请求参数数据;
  3. 调用相关Java类和方法,完成具体的业务功能;
  4. 实现到其他Web组件的跳转,如重定向或请求转发;
  5. 生成HTTP响应。

2、Servlet 生命周期

Servlet 生命周期

七种状态:创建、初始化、服务可用、服务不可用、处理请求、终止服务和销毁

!四个阶段:加载和实例化、初始化、处理请求和销毁

1)加载和实例化

  • 在服务器正常运行状态下,客户端首次向Servlet程序发出请求时
  • 重新装入Servlet时,如服务器重新启动或Servlet被修改…

2)初始化

  • 在Servlet实例化后,Servlet容器调用初始化方法初始化Servlet实例
  • 如果初始化正常,Servlet在容器中会处于服务可用状态;如果初始化失败,Servlet容器会从运行环境中清除掉该实例
  • 当Servlet运行出现异常时,Servlet容器会使该实例变为服务不可用状态

3)处理请求

  • 服务器接收客户端请求时,会为该请求创建一个"请求"对象和一个"响应"对象并调用service()方法,该方法再调用其他方法来处理请求
  • 在Servlet生命周期中,service()方法可能被多次调用。当多个客户端同时访问某个Servlet的service()方法时,服务器会为每个请求创建一个线程,实现并行处理多个请求,减少请求处理的等待时间,提高服务器的响应速度

4)销毁

  • 当Servlet容器需要终止Servlet时,调用Servlet的destroy()方法释放正在使用的资源
  • 在调用destroy()方法前,必须让当前正在执行service()方法的任何线程完成执行
  • 在destroy()方法完成后,Servlet容器必须释放Servlet实例以便被垃圾回收

3、Servlet 声明配置

1)配置文件

<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.No_Rishi.servlet.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

2)注解

@WebServlet(name="HelloServlet", value="/HelloServlet")
@WebServlet("/HelloServlet")

4、Servlet 核心接口

1)四个核心接口对象的作用范围和创建时机

ServletConfig:一个ServletConfig对象对应一个Servlet程序;初始化Servlet时创建

ServletContext:一个ServletContext对象对应一个Web 应用;启动Web应用时创建

HttpServletRequest:一个HttpServletRequest对象对应一次Servlet请求;收到Servlet请求时创建

HttpServletResponse:一个HttpServletResponse对象对应一次Servlet请求;收到Servlet请求时创建

2)ServletConfig接口

功能:获取Servlet初始化参数、配置信息和ServletContext对象。

<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.No_Rishi.servlet.HelloServlet</servlet-class>
<init-param>
<param-name>id</param-name>
<param-value>1908170204</param-value>
</init-param>
</servlet>
@Override
public void init(ServletConfig sc) throws ServletException {
System.out.println("HelloServlet程序的别名:"+sc.getServletName());
System.out.println("HelloServlet程序的初始化参数:"+sc.getInitParameter("id"));
System.out.println("HelloServlet程序的ServletContext对象"+sc.getServletContext());
}

2)ServletContext接口

功能:代表当前项目运行环境;ServletContext对象是域对象(application);

<context-param>
	<param-name>id</param-name>
	<param-value>1908170204</param-value>
</context-param>
ServletContext context = getServletConfig().getServletContext();
System.out.println("上下文参数:"+
context.getInitParameter("id"));
context.setAttribute("id", "1908170204");
String id = context.getAttribute("ID"));

3)HttpServletRequest接口

功能:封装HTTP请求信息

String str = request.getParameter("用户请求参数");
String[] strs = request.getParameterValues("用户请求参数");

4)HttpServletResponse接口

功能:封装HTTP响应消息

5)存取请求域属性的方法

request.setAttribute("请求域属性", "属性值");
request.getAttribute("请求域属性");

6)处理请求和响应的中文问题

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

5、Servlet 应用

1、处理请求数据

  • 处理超链接请求数据

超链接请求语法格式

<a href="URL地址?参数=参数值[&参数=参数值...]">链接文本</a>
<a href="HelloServlet?id=1908170204&date=20211222"></a>
  • 处理Form表单请求数据

Form表单请求语法格式

<form action="HelloServlet" method=POST">
<p>用户名:<input name="username" type="text"></p>
<p>密码:<input name="password" type="password"></p>
<p>信息来源:
<input name="channel" type="checkbox" value="网络">网络
<input name="channel" type="checkbox" value="报纸">报纸
<input name="channel" type="checkbox" value="亲友">亲友</p>
<input type&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值