JAVA
Java web
HTTP请求的GET与POST方式的区别
URL地址长度不同, GET支持的字符少
GET的密码是明文,安全问题,容易受到黑客攻击
GET只传输文本,不支持文件传输
GET方式通常用来查询,不用来修改数据,是幂等操作,修改数据用POST
Tomcat的优化经验
内存优化-Xms
增加线程数maxThreads="150"
修正server.xml中的中文编码
BIO改NIO
Service
通常Servlet特指HttpServlet,用来接受浏览器的访问请求,浏览器最常用的请求
为GET和POST方式,还有其它五种,而HttpServlet分别有七个方法(PUT、
DELETE、HEADER、TRACE、OPTION)处理这些类型的请求,另有一个是
J2EE不支持的,是CONNECT。Servlet是J2EE规范中的重要成员,
是构成WEB的重要组件
***框架***
1. 定义一个Servlet类,继承HttpServlet抽象类
2. 在web.xml中定义一个servlet标签,配置类名和servlet名
3. 配置servlet处理的URL请求连接,可以用模糊匹配
4. 在J2EE生命周期中,一个Servlet只有一个实例
5. 一个Servlet可以为多个请求服务,每个请求在独立的线程中执行
***生命周期***
1. 加载Servlet类
2. 实例化
3. 初始化init
4. 处理请求 service 进一步调用doGet/doPost方法
5. 销毁 destory
Forward: 服务器端内部跳转,URL地址不变,属于单次请求;不能跨域跳转
Redirect: 服务器通知浏览器中转,URL地址发生改变,是两次跳转;可以跨域跳转
在两个页面传值只能通过parameter,在URL中传参
JSP
***内置对象***
request:用户端请求,此请求会包含来自GET/POST请求的参数;
表示HttpServletRequest对象。它包含了有关浏览器请求的信息,
并且提供了几个用于获取cookie, header,和session数据的有用的方法。
response:网页传回用户端的回应;
表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的
响应的方法(如cookies,头信息等)
out:用来传送回应的输出
对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于
向浏览器回送输出结果。
pageContext:网页传回用户端的回应;
表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围
的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session:与请求有关的会话期;
表示一个请求的javax.servlet.http.HttpSession对象。Session可以
存贮用户的状态信息
applicaton:servlet 正在执行的内容
表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎
和servlet环境的信息
config:servlet的构架部件
表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的
初始化参数。
page:网页本身;表示从该页面产生的一个servlet实例
exception: 针对错误网页,未捕捉的例外
***jsp基本动作***
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
***指令***
isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)
***jsp:include--标签***
<jsp:include page=included.jsp flush=true />它总是会检查所含文件中的变化,
适合用于包含动态页面,并且可以带参数 静态INCLUDE用include伪码实现,
不会检查所含文件的变化,适用于包含静态页面 <%@include file=included.htm %>
执行的时机不同,动态include是在运行时把两个JSP合并,静态include
是在编译期合并动态include在页面发生改变时,能及时更新,而静态页面,
不会再次重新编译
MVC
MVC是Model-View-Controller的简写
Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),通常是数据访问层。
View是应用的表示层(由JSP页面产生)或模板框架,如freemarker、velocity
Controller是提供应用的处理过程控制(一般是一个Servlet),负责页面间跳转
通过分层让框架显示的有条理,修改重构起来方便,也使代码方便互相调用,重(chong)用
例:
Model:JDBC、Hibernate、MyBatis
View:JSP、FreeMarker、Struts
Controller:Spring MVC、Struts、Servlet