Tomcat优化
去掉web.xml的监视,把jsp提前编辑成servlet。
有富余物理内存的情况下,加大tomcat使用的jvm的内存
HTTP请求的GET和POST区别
1.get从服务器获取数据,post向服务器传送数据
2.get方式,服务器端用request.querystring获取变量值,post方式,服务器端用request.form获取提交的数据
3.get方式提交数据,最多1024字节,post则没有限制
4.在客户端,get方式(不安全)通过url提交数据可以看到,post(安全)数据放置在html header内提交
servlet
定义:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
生存期:加载、实例化、初始化、处理请求、服务结束。由javax.servlet.Servlet接口的init,service和destory方法表达。
基本架构
public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//TODO
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//TODO
}
}
forward() VS redirect()
forward:容器中控制权的转向,在url中不会显示转向后的地址。更加有效
服务器直接访问目标地址url,发送给浏览器
redirect:完全跳转,跳转url地址,重新发送请求链接。
服务器根据逻辑发送一个状态码,告诉浏览器重新请求地址,session、request参数都可以获取。
request.getAttribute() VS request.getParameter
1.getAttribute获取jsp中用setAttribute设定的attribute
2.parameter得到的是string;attribute得到的是object
3.getParameter方法获取http提交过来的数据,getAttribute只存在于request对象范围内。
JSP内置对象,方法
request:用户请求,包含get/post参数
response:服务端回应
pageContext:网页属性管理
session:与请求有关的会话,存储用户状态信息。
application:servlet正在执行的内容,有助于查找有关servlet引擎和servlet环境信息
out:用来传送回应的输出
config:servlet的构架部件,用于存取servlet的初始化参数
page:网页本身,表示从该页面产生一个servlet实例
exception:针对错误网页的异常
四大共享范围
1.page:当前页面
2.request:从上一个页到下一个页面
3.session:同一个会话内
4.application:同一个网站内,整个服务器内。
JSP中动态include和静态include
动态:用jsp:include动作实现
//总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
<jsp:include page=included.jsp flush=true />
静态:用include伪码实现,不会检查所含文件的变化
//适合静态页面
<%@include file=included.html%>
//跳转
<jsp:include page=included.jsp flush=true/>
页面不会转向include所指的页面,只显示该页的结果,主页面不变,执行完以后还会回来,相当于调用函数
<jsp:forward page=nextpage.jsp/>
完全转向新页面,不会再回来。相当于go to语句
JSP VS Servlet
JSP是Servlet技术的扩展,本质上是Servlet的简易方式。
JSP编译后是“类servlet”
Servlet应用逻辑是在Java文件中,并完全从表示层中的html里分离开来
JSP是Java和html组合成.jsp文件
JSP侧重于视图,Servlet侧重于控制逻辑
MVC各部分实现
Model:应用服务逻辑,通过JavaBean,EJB组件实现
View:应用表面层(由JSP页面产生)
Controller:处理过程控制(一般是一个Servlet)
JDBC实例
Statement:最基本的数据操作对象,应用范围广,但是运行时使用的是字符串连接技术,存在安全隐患。
PreparedStatement:预编译的对象,在执行语句之前,向数据库发送类似公式一样的模板,使用替换变量,提高数据存储的安全性。
CallableStatement:效率和安全最高的数据操作对象,兼容性最差,此对象用来调用数据库中的存储过程。
xml有解析技术及区别
DOM:处理大型文件性能下降厉害(dom树结构所造成,占用内存较多),dom必须将解析文件装入内存,适合对xml的随机访问。
SAX:属于事件驱动型的xml解析方式,顺序读取,不需要一次性全部读取。适合顺序访问
STAX:Streaming API for XML
项目中的xml技术:数据存储和信息配置
xml文档定义形式
dtd,schema
schema:本身是xml,可以被xml解析器解析
Ajax
就绪状态码:
0 XMLHttpRequest对象没有完成初始化,即刚刚创建
1 XMLHttpRequest对象开始发送请求,调用open方法,但还没有调用send
2 XMLHttpRequest对象的请求发送完成,send方法已经调用,数据已经提交到服务器,但还没有响应。
3 XMLHttpRequest对象开始读取响应,还没有结束,收到所有的响应消息头,但正文还没有完全收到。
4 XMLHttpRequest对象读取响应结束,一切都收到了。
HTTP状态码
200 服务器响应正常
400 无法找到请求的资源
403 没有访问权限
404 访问的资源不存在
500 服务器内部错误