您的位置:首页 > 编程语言 > Java开发

Servlet&JSP&Struts知识总结

2012-11-10 19:40 399 查看
 

Servlet

1、 Servlet核心

WEB程序模型:客户端(浏览器)+服务端(发送WEB内容至客户端浏览器)

Tomcat、JBOSS

WEB应用程序结构

Servlet运行在服务器上的java程序,为客户端提供动态内容,使用JDBC或Hibernate访问数据库,MVC模式中的Controller

PPT 20 Servlet执行流程

 

2、 Servlet生命周期

加载和实例化:第一个请求到来或者Servlet容器启动

init:调用一次,通常来做一些资源初始化或one-time activities(ActionServlet读取配置文件)

service:线程安全的,多线程并发调用,避免使用成员变量,共享资源要进行同步

destroy:Servlet容器决定删除一个Servlet实例,保存持久化状态

3、 请求处理

请求参数Parameters:getParameter/Values/Map/Names

请求头Headers:getHeaders/Names

请求URL:getContextPath(WEB应用路径)、getServletPath(Servlet实例虚拟路径)

请求合作:set/getAttribute

4、 响应生成

响应头:setHeader、addHeader

响应体:getWriter/getOutputStream

重定向:sendRedirect(转发和重定向)

5、 资源访问

一切可以被Servlet使用的事物

访问WEB组件:RequestDispatcher、ServletContext、include和forward

访问数据库组件:JDBC、连接池(context.xml、META-INF)、jndi、数据源

6、 HTTP状态管理

http的无状态特性

cookie机制:客户端用来保存状态(cookie保存购物车信息)getName、getValue、setMaxAge、addCookie、getCookies

保存在客户端、大小有限制、用户可以禁止、只能保存字符串

session机制:服务器端保存状态(会员卡例子,cookie保存会员卡ID、session保存会员卡消费信息)setAttribute、getAttribute、removeAttribute、invalidate、

保存在服务器端、web服务器都会支持、可以保存任意类型

追踪session:cookie、URL重写(response.encodeURL)

7、 过滤器

服务器端位于客户端和请求资源之间(编码过滤等)

登录验证、授权和验证、包装请求(set/getAttribute、getParameter改变属性或参数存储及解析的规则)和响应(getWriter、getOutputStream提供缓冲等)

init——doFilter——destroy

8、 监听器

ServletContext、HttpSession、ServletRequest

set/removeAtrribute

 

JSP

1、 JSP概述

JSP是web服务器存储的基于文本的文档,java服务器页面

JSP执行流程:翻译——编译——运行最新生成的Servlet

PPT 7

 

JSP优点:无需在web.xml部署、自动编译、自动重加载、易学(非java程序员)、易读、简单

JSP环境:客户端浏览器、web服务器、开发工具(文本编辑器、MyEclipse)

2、 JSP语法

脚本元素(掺杂java代码)

       声明——<%!  %>声明成员变量、定义方法,_jspSevice方法外,一般不会产生输出,导致并发

       脚本——<%  %>_jspSevice方法内,java代码片段,隐含对象可用,可能产生输出

       表达式——<%=  %>_jspSevice方法内,返回字符串,隐含对象可用,一定生成输出

指令(页面属性、导入标签库、静态包含)

页面指令:<%@page session(默认true)、contentType(text/html;charset=utf-8)、pageEncoding(jsp页面编码)、import(导包,默认导入lang、javax.servlet、javax.servlet.jsp、javax.servlet.http、)、errorPage(指示错误跳转页面)、isErrorPage(指示该页面是否为错误跳转页面,true则exception可用)%> isErrorPage为false是否可以跳转?

       包含指令:静态包含(翻译)、不可重复定义变量

       标签库指令:JSTL标签使用等

动作(操纵javabean组件、动态包含、转向、plugin)

       useBean(id、scope、class(父类或接口)、type(类名))

       setProperty(name、property可通配、param、value字符串——基本类型)     

BeanUtil

getProperty(name、property)

include动态包含(运行),响应包含

forward转发,响应提交之前,forward之前自动清除响应缓存

plugin导入一些applet程序

param用于jsp:forward,jsp:include,jsp:plugin中传递参数

注释(html注释<!-- -->、jsp注释(<%-- --%>)、java注释)

3、 隐含对象

9个

pageContext、request、response、session、application、exception、out、config、page(this)

4、 MVC架构

model1、model2

 

5、 EL

用于表现的一种简单语言

${}、[]、.、Integer、Float、String、Boolean、NULL、运算符(算术、关系、逻辑)、empty(null或不存在)

定义函数(tld文件、方法要求public static)

隐含对象:11个 pageContext、pageScope、sessionScope、requestScope、applicationScope、param、paramValues、header、headerValues、cookie、initParam

6、 JSTL标签库

JSTL标签+EL——代替JSP中的java代码

jstl.jar、standard.jar

Core Tags:变量操作(<c:out、set、remove、catch>)、条件判断(if、choose+when+otherwise)、循环、迭代(<c:forEach(items、var、varStatus、begin、end、step))、URL操作(url、redirect、param、import>)

EL functions

${fn:toUpperCase(name)}length、trim

Format、SQL、XML tags 了解

JavaBean:支持属性、事件、业务方法,有默认构造器、可序列化

 

Struts:

1、 Struts介绍

model1、model2

2、 Struts应用结构

PPT 38 Struts请求生命周期

ActionServlet——ActionForm(validate)——Action——JSP

3、 Struts框架组件

核心组件都是C

辅助组件V(标记库)

struts-config.xml

       form-beans

       global-exception/forwards

       action-mappings

              path、type、name、scope、validate、input、forward

       controller

       message-resources

4、 Action相关

Struts框架结束及应用程序编码开始,不应当包含业务逻辑(biz)

从FormBean检索值:不应直接传送formbean(依赖于Struts)

自定义响应:returnnull(文件下载、ajax),无需下一步跳转

内置Action:

       DispatchAction(请求参数function=add,配置文件中<action-mapping parameter=”function”——action类中的add方法)

       MappingDispatchAction(请求路径/add,parameter=”add”——add方法)

       LookupDispatchAction(一表单多提交,请求参数function=Add%20User——配置文件parameter=“function“——资源文件button.add= Add User ——Action类中getKeyMethodMap(button.add,add)——调用add方法)

       ForwardAction

       DownloadAction

处理重复提交:token机制,html:form或html:link自动生成token值,saveToken,isTokenValid(request,true)、resetToken

自定义Action和ActionForm

5、 Struts标记库

html

bean

logic

jstl+EL替代Struts标签

6、 Struts国际化

i18n:internationalization国际化

l10n:locallization本地化

java.util.Locale、ResourceBoundle

java.text.NumberFormat、DataFormat、MessageFormat

native2ascii –encoding utf-8 文件1 文件2

1-4字节

request Encoding、page Encoding(jsp)、response Encoding

7、 Struts表单验证,validator框架

客户端<html:javascript  formName=”logonForm”>  onsubmit=return validateLogonForm(this)

服务器端

       plug-in启用validator框架 validator-rules.xml、validation.xml(formbean关联)

       form继承自ValidateForm(reset、validate)

       配置validation.xml

       资源文件

8、 Struts异常处理

声明式异常(不用在程序中处理,配置文件处理)

<global-excepiton>

< excepiton type、path、key>

资源文件

9、 Struts Tiles框架

plug-in启用Tiles框架

定义布局(继承)

创建布局页面

创建要使用的JSP页面

使用Tiles
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: