JSP 基础概念归纳 5分钟看完

1. 符合 j2ee 标准的 web-app 的目录结构

WEB-INF classes

web.xml lib

  1. servlet 开发过程
    从 httpservlet 继承, 重写 doget / doPost 方法

    部署web.xml

  2. servlet 声明周期

    •  只有一个对象

    •  第一次请求的时候被初始化,只一遍

    •  初始化后先调用init方法,只一遍

    •  每个请求,调用一遍serviceàserviceàdoGet/doPost。以多线程的方式运行

      不要在 servlet 中设计成员变量。

    •  卸载前调用destroy方法

  3. 为什么有 2 个 init 方法

  4. /的含义

    •  form
      form提交中action的路径可以为虚拟路径, 也可以为绝对路径,/代表 http://127.0.0.1/

    •  web.xml
      web.xmlurl-patternwebapplication根路径,/代表http://127.0.0.1/Test/

      6.乱码

page1image7864 page1image8288 page1image8448 page1image8872 page1image9032

场合:页面本身有中文的时候

page1image9640 page1image10064 page1image10224
page2image1208

解决办法:servlet:
Jsp:
注意:一定要写在 PrintWriter out = resp.getWriter();之前

resp.setContentType("text/html;charset=gbk");

<%@ page contentType="text/html;charset=gb2312"%>

page2image4304 page2image4464

场合:解决 get 方式乱码问题: 解决办法:

修改 server.xml àURIEncoding="GBK"

page2image6464 page2image6624

场合:解决 post 方式提交内容的乱码 解决办法:request.setCharacterEncoding("GBK"); 注意:一定要写在存取第一个参数之前

不要调用 response.setCharacterEncoding("GBK");

page2image8536 page2image8696

场合:<jsp:param name="user" value="<%=s%>"/>,url 地址包含中文参数 解决办法:<%request.setCharacterEncoding("GBK");%>
注意:

page2image10776

7. Cookie 和 session 的区别

注意 cookie 有时候禁不掉

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

两种类型

   有生命周期

   无生命周期

两种实现方式

  依赖于cookie

  url重写

父路径不能访问子路径的cookie 同一个session的窗口共享一个session

典型应用

  保存一个月 一年

  购物车

典型应用

  用户登录

  购物车

不可靠 可靠

8. application (ServletContext)的概念 9. jsp 初学者容易犯的错误

WEB-INF 子目录下面不能放置 html jsp 等文件 不能直接打开

10. jsp/servlet 连接数据库时要注意的事 项

拷贝数据库驱动的 jar 包到 apache-tomcat-6.0.14\webapps\Test\WEB-INF\lib 文件夹 确认数据库已经启动
用户名、密码应该正确

  1. <%! <%区别

  2. 如何解决 ie 缓存问题

  3. TestErr.jsp / ErrPage.jsp

不太稳定,有的时候不好使:

  •  先不写这句话:<%@page errorPage="ErrPage.jsp"%>

  •  Ie不行,firefox行

14. <%@include 和 jsp:include 的区别

<%@ include file="date.jsp" %>

page3image5744

<jsp:include page="date.jsp" flush="true"/>

include 编译指令是在 JSP 程序的转换时期就 将 file 属性所指定的程序内容嵌入,然后再 编译执行;

而 include 指令在转换时期是不会被编译的, 只有在客户端请求时期如果被执行到才会被 动态的编译载入

page3image9680

只生成一个 class 文件

多个

Include 不能带参数

<jsp:include>可以

同一个 request 对象

不同的 request 对象,可以取得包含它的页面 的参数,并添加了自己的参数

常用

不常用

15. forward 和 sendredirect 的区别

Sendredirect

Forward

是不同的 request

虽然是不同的对象,但是,可以取到上一个页面的内容

send 后的语句会继续执行,除非 return

forward 后的语句不会继续发送给客户端

速度慢

速度快

需要到客户端的往返,可以转到任何页面,

服务器内部转换,

地址栏有变化

地址栏没有变化

可以传参数,直接写在 url 后面

可以传参数

/代表的是 http://127.0.0.1/ <%response.sendRedirect("/test/ServletToJSP");%> <form action="/test/ServletToJSP">
<a href="/test/ServletToJSP">test</a>

/代表的是 http://127.0.0.1/test this.getServletContext().getRequestDispatch ("/servlet_jsp/ServletUseJsp.jsp") .forward(req, resp);

并且只能以/开头

page4image19800

常用

常用

16. <jsp:useBean scope = page|request|session|application>

17. jsp 内 置 对 象 : out request response session application exception

你可能感兴趣的:(jsp)