JavaWeb复习

JavaWeb复习

一、JSP

1. Java Server Pages

本质是 Servlet,

过程:JSP 转译成.java文件(Servlet),编译成.class 字节码文件,运行

2. 容器

Tomcat、Jboss、Weblogic、GlassFish、Websphere、Jetty

3. 七大元素

指令:page include taglib

HTML

表达式: <%=%>

声明: <%! %>

注释:<%-- --%>

动作: jsp:useBean jsp:setProperty jsp:getProperty

小脚本: <% %>

4.九大内置对象

域对象:pageContext、request、session、application

out、exception、page、response、config

pageContext.findAttribute() ----page request session application

2)request和 session:

HttpSession session = request.getSession(boolean);

true: 获取session,如果没有获取到,则创建session并返回,否则直接返回session对象。

false: 如果没有获取到,返回null,如果存在则返回session对象

ServletContext application = getServletContext();

  <session-config>
  	<!-- 单位:分钟 -->
  	<session-timeout>10</session-timeout>
  </session-config>
3) out 对象:

PrintWriter out = response.getWriter();

4) exception对象:

在JSP中默认是不能使用的。

如果要使用exception内置对象,则当前JSP页面必须是错误页面(isErrorPage=“false”)

注意:errorPage 和 isErrorPage

errorPage=“error.jsp” :指向错误页面,如果当前页面出现异常,则跳转到error.jsp页面处理

isErrorPage=“true|false”:设置当前页面是否为错误页面。

错误页面的配置:

<error-page>
  	<error-code>500</error-code>
  	<location>/scope/error.jsp</location>
  </error-page>
  <error-page>
  	<error-code>404</error-code>
  	<location>/notfound.jsp</location>
  </error-page>
5) config

用来获取web.xml文件中配置初始化参数

  <servlet>
  	<servlet-name>initjsp</servlet-name>
  	<jsp-file>/scope/count.jsp</jsp-file>
  	<init-param>
  		<param-name>initcount</param-name>
  		<param-value>100000</param-value>
  	</init-param>
  </servlet>
6) page

当前对象

7) session和cookie

session存储在服务器端,而cookie存在客户端

session实现需要cookie的保存jsessionid

cookie不安全,存储在客户端,文本形式,session在服务器,安全

cookie存字符串,session以对象存储

cookie存储大小有限 session相对大的数据

8) session失效情况

a.超时 (默认1800s )

b.销毁 invalidate()方法

c.关闭浏览器(本质超时)

5. get和post区别

a) get在地址栏传参,post隐式请求体方式传参

b) get不安全的,post安全

c) get传参长度有限的(不支持文件上传),post没有限制 (支持大文件上传的)

d.get可以用于收藏、邮件发送的url。

6. 两种跳转:重定向和转发

a) 地址栏:重定向改变,转发不改变

b) 请求:重定向发出两次请求 转发一次请求

c) 数据传递: 转发是可以共享request对象的数据的,而重定向不可以。

d) 跳转:重定向属于客户端的跳转 转发是服务器端跳转

7. 两种包含include

指令包含<%@include file =“include.jsp”%> 动作包含:<jsp:include >

a. 指令包含,转译时,进行合并成一个.java文件,编译.class 运行 ,同享一个pageContext对象

b.动作包含,各自转译 编译,执行时,调用。分别有两个不同的pageContext

二、Servlet

1. 生命周期

a、加载和实例化:构造方法—1次

b、初始化:init()方法----1次

c、服务:service() 方法----n次

d、销毁:destory()方法 —1次

2.加载和实例时间

a.默认情况下,第一次被请求,加载和实例化。

b.通过web.xml或注解,配置随服务器启动时加载和实例化

<load-on-startup>0</load-on-startup>

3. service() 和 doGet() 和doPost()

service()方法中获取request.getMethod(),提交表单的方法,判断去调用doPost()和doGet();

4. init() 和init(ServletConfig config)

1.如果有参,则其中初始化时,不再调用无参的init()方法

2.获取web.xml配置初始化参数,通过有参的init()方法 config.getInitParametere()

5. destory()方法

三、监听器

要自定义监听器,必须实现ServletContextListener、HttpSessionListener等监听,需要在web.xml中配置或使用@WebListener,才能起作用被容器所加载。

监听器在服务器启动时加载

  <listener>
  	<listener-class>com.wdzl.listener.GlobalListener</listener-class>
  </listener>

Session的绑定监听器

 class User implements HttpSessionBindingListener{
     @Override
	public void valueBound(HttpSessionBindingEvent event) {
		
	}
	@Override
	public void valueUnbound(HttpSessionBindingEvent event) {
		
    }
 }

四、 过滤器

1. 过滤器:

a. 自定义类,实现 Filter 接口。

b. 配置:两种方式:web.xml和注解

web.xml配置方式:

<filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>com.wdzl.filter.CharsetFilter</filter-class>
    <init-param>
      <param-name>charset</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>

注解:

@WebFilter(value = "/*",initParams = {@WebInitParam(name = "charset",value = "utf-8")})

public class CharsetFilter implements Filter {
}

2. 生命周期

四个阶段

加载和实例化:构造方法 一次

初始化:init() 一次

public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
}

过滤: 注意request和response类型 n次

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		chain.doFilter(request, response);
}

销毁:一次

	public void destroy() {
		// TODO Auto-generated method stub
	}

3. 启动加载时间

随服务器启动时加载和初始化的。

4. 过滤器链

通过配置多个过滤器,形成过滤器链,栈的方式请求和响应的。

过滤器放行:

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        //放行  调用下一个过滤器或请求的资源
		chain.doFilter(request, response);
	}

5.处理乱码

1.过滤器处理乱码,只能处理 post 请求乱码

​ request.setCharacterEncoding(“utf-8”);

2.get请求乱码:

转码:String str = new String(param.getBytes(“iso-8859-1”),“utf-8”);

修改tomcat配置:servet.xml中,URIEncoding=“utf-8”

3.常见问题:

a.处理乱码的提交方式是否为post

b.请求是否经过过滤器

c.提交的当前jsp页面的编码是否为utf-8

4.响应乱码

response.setContentType("text/html;charset=utf-8");
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值