JSPServlet知识点.docx
- 文档编号:26670958
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:7
- 大小:23.40KB
JSPServlet知识点.docx
《JSPServlet知识点.docx》由会员分享,可在线阅读,更多相关《JSPServlet知识点.docx(7页珍藏版)》请在冰豆网上搜索。
JSPServlet知识点
1符合j2ee标准的web-app的目录结构
⏹jsp,html,js,css
◆jsp,html,js,css
⏹WEB-INF
◆classes
◆web.xml
◆lib
2servlet开发过程
⏹从httpservlet继承,重写doget/doPost方法
⏹部署web.xml
3servlet,GenericServlet,HttpServlet之间的关系
4service,protectedservice,doPost,doGet方法之间的关系
5servlet生命周期
⏹只有一个对象
⏹第一次请求的时候被初始化,只一遍
⏹初始化后先调用init方法,只一遍
⏹每个请求,调用一遍serviceservicedoGet/doPost。
以多线程的方式运行
◆不要在servlet中设计成员变量。
⏹卸载前调用destroy方法
6为什么有2个init方法
6.1因为init(ServletConfig)如果要对他进行重写以便实现自己的初始化逻辑的话,程序员就不能忘记super.init(config)的调用,那就完蛋了.
6.2重写init的时候请重写不带参数的init方法
7/的含义
⏹form
◆form提交中action的路径可以为虚拟路径,
◆也可以为绝对路径,/代表http:
//127.0.0.1/
⏹web.xml
◆web.xml中url-pattern为webapplication根路径,/代表http:
//127.0.0.1/Test/
8乱码
页面本身有中文的时候(servlet)
resp.setContentType("text/html;charset=gbk");
注意:
一定要写在PrintWriterout=resp.getWriter();之前
页面本身有中文的时候(JSP)
<%@pagecontentType="text/html;charset=gb2312"%>
或者
<%@pagepageEncoding="GB18030"%>
解决get方式乱码问题:
修改server.xmlURIEncoding="GBK"
post方式提交内容的乱码
request.setCharacterEncoding("GBK");
注意:
一定要写在存取第一个参数之前
注意:
不要调用response.setCharacterEncoding("GBK");
paramname="user"value="<%=s%>"/>,url地址包含中文参数 <%request.setCharacterEncoding("GBK");%> 9tomcat乱码问题详细分析 有可能产生乱码问题的环节 <%@pagecontentType="text/html;charset=gb2312"%> 影响产生的java文件 <%@pagepageEncoding="GB18030"%> 影响产生的java文件 server.xmlURIEncoding=”gbk” 解决get方式乱码问题 request.setCharacterEncoding("GBK"); 解决post方式乱码问题 resp.setContentType("text/html;charset=gbk"); response.setCharacterEncoding("GBK"); 9.1情况1 如果默认情况什么都不设置: server.xml不设置URIEncoding jsp页面不添加<%@pagecontentType="text/html;charset=gb2312"%> jsp页面也不添加<%@pagepageEncoding="GB18030"%> 那么 网页(out)没有乱码 但是后台(System.out)有乱码 原因是产生的java文件编码有问题。 10Cookie和session的区别 Cookie session 存储在客户端 存储在服务器端 服务器可以向客户端写内容,只能是文本文档,长度(4k),个数,总个数都有限制 因为是服务器端的对象,所以没有这些限制 可以禁用,可以删除 两种类型 ●有声明周期(写到硬盘上了) ●无声明周期(存在浏览器到内存里) 有失效时间。 web.xml里面有配置 ----- 两种实现方式 ●依赖于cookie(存在浏览器内存中附的那种) ●url重写 父路径不能访问子路径的cookie 同一个session的窗口共享一个session 典型应用: 10.13个月不用再登陆 10.2购物车(http: //www.china- (此为核心功能,不建议用cookie实现) 典型应用: ●用户登陆 ●购物车也可以用session实现。 不可靠 可靠 java,php,vbscript,csharp,javascript java,php,vbscript,csharp 11application(ServletContext)的概念 12jsp初学者容易犯的错误 ⏹WEB-INF子目录下面不能放置htmljsp等文件 ⏹不能直接打开 13jsp/servlet连接数据库时要注意的事项 拷贝数据库驱动的jar包到apache-tomcat-6.0.14\webapps\Test\WEB-INF\lib文件夹 确认数据库已经启动 用户名、密码应该正确 14<%! <%区别 15如何解决ie缓存问题 <% response.addHeader("Cache-Control","no-cache"); response.addHeader("Expires","Thu,01Jan197000: 00: 01GMT"); %> 16TestErr.jsp/ErrPage.jsp ●不太稳定,有的时候不好使: ⏹先不写这句话: <%@pageerrorPage="ErrPage.jsp"%> ⏹Ie不行,firefox行 ⏹Ie解决: 17<%@include和jsp: include的区别 <%@includefile="date.jsp"%> includepage="date.jsp"flush="true"/> include编译指令是在JSP程序的转换之前(即: jsp-->java)时期就将file属性所指定的程序内容嵌入(合并成一个JSP文件),然后再统一的编译执行; 而被包含页面在包含页面的include指令为执行时是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入 只生成一个java和class文件 多个(自己生成自己的java文件) Include不能带参数 include>可以 同一个request对象 不同的request对象,可以取得包含它的页面的参数,并添加了自己的参数 常用 不常用 静态导入 动态导入 18forward和sendredirect的区别 Sendredirect Forward 虽然是相同的request,但取到底参数不同。 虽然是不同的对象,但是,可以取到上一个页面的内容 org.apache.catalina.connector.RequestFacade@1570f5c org.apache.catalina.core.ApplicationHttpRequest@ce3b62 send后的语句会继续执行,除非return forward后的语句不会继续发送给客户端 速度慢 速度快 需要到客户端的往返,可以转到任何页面, 服务器内部转换, 地址栏有变化 地址栏没有变化 可以传参数,直接写在url后面 可以传参数 /代表的是http: //127.0.0.1/(发送过去让客户端执行) <%response.sendRedirect("/test/ServletToJSP");%> /代表的是http: //127.0.0.1/test,webapp的根路径 this.getServletContext().getRequestDispatcher("/servlet_jsp/ServletUseJsp.jsp") .forward(req,resp); 并且只能以/开头 与web.xml中的一样url-pattern 常用 常用 19 useBeanscope=page|request|session|application> 20jsp内置对象: out request response session application exception pageContext config
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSPServlet 知识点
![提示](https://static.bdocx.com/images/bang_tan.gif)