- 浏览: 317716 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
huangyunbin:
swc.advance(); 这个什么时候被调用是最核心的 ...
滑动窗口计数java实现 -
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB 从入门到精通专题教程 -
rryymmoK:
深入浅出MongoDB应用实战开发下载地址:http://pa ...
MongoDB 从入门到精通专题教程 -
u012352249:
怎么支持多个窗口啊?
滑动窗口计数java实现 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB 从入门到精通专题教程
servlet & struts 总复习
------------------------
1. Servlet 基础概念
HttpServlet extends Servlet
生命周期(init(), destroy(), service())
init(Config)->获得initParam
HttpServlet -> service()(获得当前提交的方式,分别调用doGet或者是doPost方法)
doGet/doPost(HttpServletRequest, HttpServletResponse)
1.1 现在没有其他的JSP内置对象
如何获得这些内置对象?
Session,Application,out->JspWriter
request.getSession()/request.getSession(boolean)
session.getServletContext()->application
response.getWriter()->PrintWriter
1.2 编码的问题
request的编码
如果没有在conf/server.xml做配置的话
在doGet,doPost方法中需要做不同的处理
否则, 直接在doPost做或者在filter里做
response 编码
response.setContentType("text/html; charset=GBK");
JS 的编码
out.println("<script>出错了("error");</script>");
---> 显示的都是乱码
解决方式一:中文部分特别做转码后再放进去
new String("出错了".getBytes("GBK"), "ISO8859-1");
解决方式二:
而是把信息放在request.setAttribute中
1.3 Servlet 做什么
出生的时候比JSP早, 古代的时候是拿Servlet来输出页面的
servlet 承担一个控制器的职责
纯JSP方式(不分层,所有代码都在页面上,包括业务逻辑, 包括访问数据库)类似ASP方式.
JSP + JavaBean 方式(JavaBean 可以是狭义上的, 属性和getter/setter方法
--> entity里的实体, 在广义上,一般的后台Java类)
<jsp:useBean> <jsp:getProperty> <jsp:setProperty>和后台的bean打交道.
这样的方式又叫model I
jsp+servlet+javabean -> model 2 -> MVC(Model-View-Controller)
DAO/Service -> 承担Model(访问数据库,执行业务逻辑)
entity -> 承担Model(把数据库的E-R变成OO)
Jsp -> 承担View职责, 只做把Controller转来的内容显示, 接收用户的输入,再提交.
配合上适当的标签, 就可以消灭小的脚本<% %>
Servlet -> 承担Controller职责,把页面的提交获取,调用M层的方法,最后把调用返回结果放在对应的页面内置对象中, 最后完成页面的转发或重定向.
具体来说, 一般一个Servlet中包括了如下步骤:
* 继承 HttpServlet
a, request.setCharEncoding("GBK");
b, 从request中获得提交内容: request.getParameter();->获得单个属性
request.getParameterValues();->获得数组
request.getParameterMap();->获得提交内容的Map封装,可以用BeanUtils.populate()填充.
在Servlet的提交里不会存在自定义对象, 集合对象(Struts才有的)
c, 对所有获得的这些内容要做转换和验证.
d, 根据需要封装entity中的实体对象
e, 实例化service的对象, 调用对应的业务方法
f, 返回结果放到request或者session或者是application上.
g, 根据不同的返回做不同的跳转或重定向.
request.getRequestDispatcher("xx.jsp").forward();
1.4 Servlet 如何配置
配置在web.xml中
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>xxx.xxx.xx.XXServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.htm</url-pattern>
/aa/*.do -> error
*abc.jsp -> error
/* -> Yes
*.do -> Yes
ACB - > Yes
</servlet-mapping>
多个servlet-mapping可以对应一个servlet配置段, 反之是不行的.
顺序无关
在<servlet>中可以配置一些其它的属性<init-param>
<param-name><param-value>, 在这里配置的属性将在init的时候被放在
config对象中, 我们可以通过getInitParameter()获得.
1.5 Servlet使用的注意事项
a, servlet是只被实例化一次的, 所以考虑到线程安全问题, 尽量在Servlet中写全局变量.
b, 所有的entity中的对象需要实现序列化接口.
c, 在servlet中, 如果说在response.sendRedirect()后还有代码,一定在sendRedirect后加一句return;
2. Filter
2.1 filter是实现Filter接口.
init(), destroy().
2.2 doFilter(request, response, chain)
2.3 是在过滤器chain上的, 顺序是由在web.xml里出现的顺序决定的.
2.4 request 的时候是写在前面的先被过滤到, response 是反过来接受到request时候的过滤.
chain.doFilter -> 向下一个过滤器提交
2.5 chain.doFilter(request, response), 如果写的url-pattern是*,Jsp也要经过Filter
2.6 如何配置,
<filter><filter-name><filter-class>
<filter-mapping><url-pattern>
* 有顺序要求, 先配先执行
2.7 如何写
2.7.1 转换成HttpServletRequest和HttpServletResponse
2.8 应用范围
转码, 验证, 权限, 防止盗链 -> 基本Filter可实现
替换, 压缩 -> HttpServletResponseWrapper: 装饰模式
* 首先在当前Filter中把原来的Response包装成自写的ResponseWrapper类
在doFilter()方法后
首先获得当前的包装对象, 对这个对象转成String,char[], byte[]
对转完的内容进行处理
处理完了以后,把处理结果通过真正的response给out出去.
在out.println()之前, 要修改真正的response对象的contentLength
3. Listener
3.1 和过滤器一样也是实现接口的.
3.2 request, Session, ServletContext
HttpSessionListener->监听创建和销毁的
HttpSessionAttributeListener -> 监听属性的增加删除和修改的
对于基本的监听器, 只需要在web.xml中配置一个<listener><listener-class>即可.
3.3 HttpSessionListener和HttpSessionBindingListener区别
HttpSessionListener: 整个应用就生成一个实例负责监听所有的session创建和销毁.
如果要做特别的处理就不好做了.
HttpSessionBindingListener:
valueBound()
valueUnBound()
可以每个不同的客户使用不同的监听器实例.
不需要在web.xml中配置.
session.setAttribute("aaaxx", new HttpSessionBindingListener())将触发valueBound方法
session.removeAttribute("aaaxx")或者session就销毁了那么就触发valueUnBound()方法.
为了标识不同的客户的不同监听器实例, 我们常常在自已写的BindingListener定义UserName, UserId
灵活但消耗资源.
3.4 所有的Listener所实现的方法里的参数都是event
在自已写Listeners的方法的时候,都要从event中来进一步获得内置对象
3.5 Listeners可以做什么?
初始化-> 把编码表的信息放在session里.
在application 上做一个监听器, 同时启动一个定时器, 这种应用是很常用的, 可以负责监控系统状态产生报警信息, 在线列表.
============================================================
------------------------------------------------------------
4. Struts整理流程
4.1 jsp -> ActionServlet -> RequsetProcessor(我们可以自己扩展的)
ActionServlet init()(读入配置文件的内容, 形成一个ModuleConfig, freeze())
doGet/doPost() -> process() -> requestProcessor.process()
4.2 RequestProcessor.process()方法
a, 获得ActionMapping
把页面上<form action="/x.do"> 和
struts-config.xml中的<action path="x" >对应.
b, 判断ActionMapping中的name, 有无对应的actionForm
c, 如果有name, 就进行填充
填充之前首先做二次接头,把<action name="abc">
和<form-bean name="abc">相对应.
如果对应上了,就根据<form-bean type="xx">
来实例化ActionForm对象,然后再填充,调用populate()方法填充的.
在填充之前, 如果有initial或者是reset方法,先做初始化.
d, ActionMapping中的validate是不是true, 如果是的话就验证(validate方法, 验证框架)
2.5 如果ActionErrors对象不为空(不是null, 而是里面有ActionError对象),返回到
input页面, 为空就继续
2.6 建立Action实例
2.7 调用Action有execute方法或者是根据parameter来决定调用分发Action中的具体方法
2.8 根据返回的ActionForward对象, 进行转发或者是重定向
ActionForward里有一个redirect属性决定是转发还是重定向
<forward name= path= redirect="true|false" >
3, Action 中
execute:
ActionMapping, ActionForm, HttpServletRequest, HttpSErvletResponse
返回的是个ActionForward
execute 中的执行流程
a, 避免直接在这个方法中写业务逻辑
把from强制转换成我们需要的类型.
b, 从ActionForm中取值
c, 验证(是验证业务逻辑)
d, 把值封装成VO对象
e, 调用对应的M层方法
f, 返回结果
导航文件:
1, 各个部分的元素是有顺序的.
2, data-sources
forbeans(当中有N个formbean)
nam 名字 type 所在类
globle-forward
name path 路径
action-mappings
<action name 对应form-bean 中的name
path 页面请求
attribute 对应范围的属性名
scope request或者session
type 对应的Action类的带包名的类名
parameter 丰富,主要用于分发,不同Action有不同的含义
input 错误跳转页面
validate true|false
roles 声明式定义权限"user, admin, sys"
forward(局部forward)
controller
processorClass 对应的扩展的RequestProcessor类
message-resources
对应的资源文件的名字, 刻不带后缀, 不带国家地区代码
Plug-in 放验证框架
web.xml
ActionServlet
导航文件所在的位置
Minit-param><param-name>config
这里的<param-value>可以写多个用逗号隔开的配置文件.
5. ActionForm
6. Action
ForwardAction
<path="/" forward="" /> = <jsp:forward>
includeAction = <jsp:include>
SwitchAction->模块转换
分发Action
共同点:
1, 不能写execute()方法
2, 这里面都有一系列方法,方法签名都和execute相同.
3, 所有的分发Action都要利用到parameter参数
DispatchAction
带参数或隐藏表单域
8 自定义验证器
随便写个类,里面的方法是以validateXX形式开头
对于DispatchAction来说, 要想使用验证规则, 就必须要扩展原有的FieldCheck类
在所有的验证规则前都首先判断是否属于当前要验证的方法.
9 Struts标签
html, bean, logic, nested, tiles
html: 生成表单元素的, 显示错误消息的.
<html:form action="/xx">
<html:select property="xx">
<html:options collection="xx"
property="xx"
labelProperty="xx" />
</html:select>
<html:errors><html:messages>
<form action="">
<html:text>
</form> --> 这样写要报错, 所以要使用HTML, 就要使用<html:form>
<html:submit>
bean -> 定义, 输出
<bean:write name="" property="" format="" > 可以是bean中的属性也可以是map中的key
里面不能有default
<bean:define id="" value="" />
<bean:define id="" name="" />
<bean:define id="" name="" property="" scope="" toScope="" />
<bean:message key="" bundle="" />
<bean:size id="" name="" />
logic -> 比较,判断, 迭代
<logic:equal>
<logic:empty> <logic:notEmpty>
<logic:present> <logic:notPresent> 是否存在
<logic:match location="start|end"> 字符串匹配
<logic:iterate name="" id="item" indexedId="index"(从1开始) offset="1" length="2">
<c:forEach items="${list}" var="item" varStatus="" begin="1" end="3">
<logic:iterate>可以遍历各类集合, 但是不能做空循环.
可以比较好的与Struts结合
<html:text property="num" indexed="true" />
nested -> 访问嵌套属性
tiles -> 做页面布局
Template Method
layout.jsp -> 模板页面
通过xml来决定以何种方式来填充模板来的不定的内容
要使用XML,就要把<tiles>框架通过<Plug-in>加入struts-config.xml文件.
------------------------
1. Servlet 基础概念
HttpServlet extends Servlet
生命周期(init(), destroy(), service())
init(Config)->获得initParam
HttpServlet -> service()(获得当前提交的方式,分别调用doGet或者是doPost方法)
doGet/doPost(HttpServletRequest, HttpServletResponse)
1.1 现在没有其他的JSP内置对象
如何获得这些内置对象?
Session,Application,out->JspWriter
request.getSession()/request.getSession(boolean)
session.getServletContext()->application
response.getWriter()->PrintWriter
1.2 编码的问题
request的编码
如果没有在conf/server.xml做配置的话
在doGet,doPost方法中需要做不同的处理
否则, 直接在doPost做或者在filter里做
response 编码
response.setContentType("text/html; charset=GBK");
JS 的编码
out.println("<script>出错了("error");</script>");
---> 显示的都是乱码
解决方式一:中文部分特别做转码后再放进去
new String("出错了".getBytes("GBK"), "ISO8859-1");
解决方式二:
而是把信息放在request.setAttribute中
1.3 Servlet 做什么
出生的时候比JSP早, 古代的时候是拿Servlet来输出页面的
servlet 承担一个控制器的职责
纯JSP方式(不分层,所有代码都在页面上,包括业务逻辑, 包括访问数据库)类似ASP方式.
JSP + JavaBean 方式(JavaBean 可以是狭义上的, 属性和getter/setter方法
--> entity里的实体, 在广义上,一般的后台Java类)
<jsp:useBean> <jsp:getProperty> <jsp:setProperty>和后台的bean打交道.
这样的方式又叫model I
jsp+servlet+javabean -> model 2 -> MVC(Model-View-Controller)
DAO/Service -> 承担Model(访问数据库,执行业务逻辑)
entity -> 承担Model(把数据库的E-R变成OO)
Jsp -> 承担View职责, 只做把Controller转来的内容显示, 接收用户的输入,再提交.
配合上适当的标签, 就可以消灭小的脚本<% %>
Servlet -> 承担Controller职责,把页面的提交获取,调用M层的方法,最后把调用返回结果放在对应的页面内置对象中, 最后完成页面的转发或重定向.
具体来说, 一般一个Servlet中包括了如下步骤:
* 继承 HttpServlet
a, request.setCharEncoding("GBK");
b, 从request中获得提交内容: request.getParameter();->获得单个属性
request.getParameterValues();->获得数组
request.getParameterMap();->获得提交内容的Map封装,可以用BeanUtils.populate()填充.
在Servlet的提交里不会存在自定义对象, 集合对象(Struts才有的)
c, 对所有获得的这些内容要做转换和验证.
d, 根据需要封装entity中的实体对象
e, 实例化service的对象, 调用对应的业务方法
f, 返回结果放到request或者session或者是application上.
g, 根据不同的返回做不同的跳转或重定向.
request.getRequestDispatcher("xx.jsp").forward();
1.4 Servlet 如何配置
配置在web.xml中
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>xxx.xxx.xx.XXServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.htm</url-pattern>
/aa/*.do -> error
*abc.jsp -> error
/* -> Yes
*.do -> Yes
ACB - > Yes
</servlet-mapping>
多个servlet-mapping可以对应一个servlet配置段, 反之是不行的.
顺序无关
在<servlet>中可以配置一些其它的属性<init-param>
<param-name><param-value>, 在这里配置的属性将在init的时候被放在
config对象中, 我们可以通过getInitParameter()获得.
1.5 Servlet使用的注意事项
a, servlet是只被实例化一次的, 所以考虑到线程安全问题, 尽量在Servlet中写全局变量.
b, 所有的entity中的对象需要实现序列化接口.
c, 在servlet中, 如果说在response.sendRedirect()后还有代码,一定在sendRedirect后加一句return;
2. Filter
2.1 filter是实现Filter接口.
init(), destroy().
2.2 doFilter(request, response, chain)
2.3 是在过滤器chain上的, 顺序是由在web.xml里出现的顺序决定的.
2.4 request 的时候是写在前面的先被过滤到, response 是反过来接受到request时候的过滤.
chain.doFilter -> 向下一个过滤器提交
2.5 chain.doFilter(request, response), 如果写的url-pattern是*,Jsp也要经过Filter
2.6 如何配置,
<filter><filter-name><filter-class>
<filter-mapping><url-pattern>
* 有顺序要求, 先配先执行
2.7 如何写
2.7.1 转换成HttpServletRequest和HttpServletResponse
2.8 应用范围
转码, 验证, 权限, 防止盗链 -> 基本Filter可实现
替换, 压缩 -> HttpServletResponseWrapper: 装饰模式
* 首先在当前Filter中把原来的Response包装成自写的ResponseWrapper类
在doFilter()方法后
首先获得当前的包装对象, 对这个对象转成String,char[], byte[]
对转完的内容进行处理
处理完了以后,把处理结果通过真正的response给out出去.
在out.println()之前, 要修改真正的response对象的contentLength
3. Listener
3.1 和过滤器一样也是实现接口的.
3.2 request, Session, ServletContext
HttpSessionListener->监听创建和销毁的
HttpSessionAttributeListener -> 监听属性的增加删除和修改的
对于基本的监听器, 只需要在web.xml中配置一个<listener><listener-class>即可.
3.3 HttpSessionListener和HttpSessionBindingListener区别
HttpSessionListener: 整个应用就生成一个实例负责监听所有的session创建和销毁.
如果要做特别的处理就不好做了.
HttpSessionBindingListener:
valueBound()
valueUnBound()
可以每个不同的客户使用不同的监听器实例.
不需要在web.xml中配置.
session.setAttribute("aaaxx", new HttpSessionBindingListener())将触发valueBound方法
session.removeAttribute("aaaxx")或者session就销毁了那么就触发valueUnBound()方法.
为了标识不同的客户的不同监听器实例, 我们常常在自已写的BindingListener定义UserName, UserId
灵活但消耗资源.
3.4 所有的Listener所实现的方法里的参数都是event
在自已写Listeners的方法的时候,都要从event中来进一步获得内置对象
3.5 Listeners可以做什么?
初始化-> 把编码表的信息放在session里.
在application 上做一个监听器, 同时启动一个定时器, 这种应用是很常用的, 可以负责监控系统状态产生报警信息, 在线列表.
============================================================
------------------------------------------------------------
4. Struts整理流程
4.1 jsp -> ActionServlet -> RequsetProcessor(我们可以自己扩展的)
ActionServlet init()(读入配置文件的内容, 形成一个ModuleConfig, freeze())
doGet/doPost() -> process() -> requestProcessor.process()
4.2 RequestProcessor.process()方法
a, 获得ActionMapping
把页面上<form action="/x.do"> 和
struts-config.xml中的<action path="x" >对应.
b, 判断ActionMapping中的name, 有无对应的actionForm
c, 如果有name, 就进行填充
填充之前首先做二次接头,把<action name="abc">
和<form-bean name="abc">相对应.
如果对应上了,就根据<form-bean type="xx">
来实例化ActionForm对象,然后再填充,调用populate()方法填充的.
在填充之前, 如果有initial或者是reset方法,先做初始化.
d, ActionMapping中的validate是不是true, 如果是的话就验证(validate方法, 验证框架)
2.5 如果ActionErrors对象不为空(不是null, 而是里面有ActionError对象),返回到
input页面, 为空就继续
2.6 建立Action实例
2.7 调用Action有execute方法或者是根据parameter来决定调用分发Action中的具体方法
2.8 根据返回的ActionForward对象, 进行转发或者是重定向
ActionForward里有一个redirect属性决定是转发还是重定向
<forward name= path= redirect="true|false" >
3, Action 中
execute:
ActionMapping, ActionForm, HttpServletRequest, HttpSErvletResponse
返回的是个ActionForward
execute 中的执行流程
a, 避免直接在这个方法中写业务逻辑
把from强制转换成我们需要的类型.
b, 从ActionForm中取值
c, 验证(是验证业务逻辑)
d, 把值封装成VO对象
e, 调用对应的M层方法
f, 返回结果
导航文件:
1, 各个部分的元素是有顺序的.
2, data-sources
forbeans(当中有N个formbean)
nam 名字 type 所在类
globle-forward
name path 路径
action-mappings
<action name 对应form-bean 中的name
path 页面请求
attribute 对应范围的属性名
scope request或者session
type 对应的Action类的带包名的类名
parameter 丰富,主要用于分发,不同Action有不同的含义
input 错误跳转页面
validate true|false
roles 声明式定义权限"user, admin, sys"
forward(局部forward)
controller
processorClass 对应的扩展的RequestProcessor类
message-resources
对应的资源文件的名字, 刻不带后缀, 不带国家地区代码
Plug-in 放验证框架
web.xml
ActionServlet
导航文件所在的位置
Minit-param><param-name>config
这里的<param-value>可以写多个用逗号隔开的配置文件.
5. ActionForm
6. Action
ForwardAction
<path="/" forward="" /> = <jsp:forward>
includeAction = <jsp:include>
SwitchAction->模块转换
分发Action
共同点:
1, 不能写execute()方法
2, 这里面都有一系列方法,方法签名都和execute相同.
3, 所有的分发Action都要利用到parameter参数
DispatchAction
带参数或隐藏表单域
8 自定义验证器
随便写个类,里面的方法是以validateXX形式开头
public static boolean validateXX( Object bean, Field field, ActionMessages messages, HttpServletRequest request, ValidatorAction va, Validator validator) { Field.getVarByValue("xx"); Field.getProperty(); -> str BeanUtils.getProperty(bean, str); if(messages == null) messages = new ActionMessages(); Resources.getActionMessage()->获得通过validation配置出来的错误消息. }修改validator-rules.xml在其中增加自已的验证类
对于DispatchAction来说, 要想使用验证规则, 就必须要扩展原有的FieldCheck类
在所有的验证规则前都首先判断是否属于当前要验证的方法.
9 Struts标签
html, bean, logic, nested, tiles
html: 生成表单元素的, 显示错误消息的.
<html:form action="/xx">
<html:select property="xx">
<html:options collection="xx"
property="xx"
labelProperty="xx" />
</html:select>
<html:errors><html:messages>
<form action="">
<html:text>
</form> --> 这样写要报错, 所以要使用HTML, 就要使用<html:form>
<html:submit>
bean -> 定义, 输出
<bean:write name="" property="" format="" > 可以是bean中的属性也可以是map中的key
里面不能有default
<bean:define id="" value="" />
<bean:define id="" name="" />
<bean:define id="" name="" property="" scope="" toScope="" />
<bean:message key="" bundle="" />
<bean:size id="" name="" />
logic -> 比较,判断, 迭代
<logic:equal>
<logic:empty> <logic:notEmpty>
<logic:present> <logic:notPresent> 是否存在
<logic:match location="start|end"> 字符串匹配
<logic:iterate name="" id="item" indexedId="index"(从1开始) offset="1" length="2">
<c:forEach items="${list}" var="item" varStatus="" begin="1" end="3">
<logic:iterate>可以遍历各类集合, 但是不能做空循环.
可以比较好的与Struts结合
<html:text property="num" indexed="true" />
nested -> 访问嵌套属性
tiles -> 做页面布局
Template Method
layout.jsp -> 模板页面
通过xml来决定以何种方式来填充模板来的不定的内容
要使用XML,就要把<tiles>框架通过<Plug-in>加入struts-config.xml文件.
发表评论
-
struts1.2验证框架续
2009-09-20 23:53 1022struts 验证 代码级验证:A ... -
struts1.2验证框架入门
2009-09-20 23:52 1275Struts 验证 在ActionForm里的validate ... -
struts1.2之Form续与标签入门
2009-09-20 23:49 1484ActionForm 需要Java类,各有不同的实现 支持的属 ... -
struts1.2各种form详解
2009-09-20 23:48 1826DynaActionForm 用配置代替Java类 <f ... -
struts1.2重点解析2
2009-09-20 23:46 1167struts 内容: ActionServlet, strut ... -
struts1.2重点解析1
2009-09-20 23:45 1027struts基本配置,在web.xml中 <servle ... -
SERVLET重要知识点
2009-09-20 23:41 1038Servlet 基础 所有的servlet都是从HttpSer ... -
JSTL简单总结
2009-09-20 23:39 1048JSTL --> JSP标准标签库 基本语言的内容:赋 ... -
JDBC与JSP简单总结
2009-09-20 23:38 1261动态脚本语言,运行在web ... -
JSP基础(续)
2009-09-20 23:36 871隐式对象(内置变量)输 ... -
JSP基础知识
2009-09-20 23:36 941配置虚拟目录方式二:在server.xml中的Context标 ... -
SqlServer基础
2009-09-20 23:34 880--------- SQL ----------T-SQL是S ... -
JavaScript高级知识
2009-09-20 23:33 1028====== JavaScript提高 =======* 掌握 ... -
JavaScript基础入门
2009-09-20 23:32 1003====== JavaScript 基础 ======== ... -
EL表达式与自定义标签
2009-09-20 23:29 1533${sessionScope.user.sex}${sessi ... -
css基础
2009-09-20 23:25 938========= CSS 基础 ======== css ... -
JSP总结
2009-05-17 19:42 1077访问JSP的过程:如果第一次访问.jsp文件,被服务器翻译成一 ... -
JavaScript总结
2009-05-17 19:19 1075在Html中使用<script>嵌入脚本代 ...
相关推荐
struts1.2学习笔记了解struts工作流程: 首先struts基于MVC模式, 用户发送的请求讲被ActionServlet处理,转发,但是它是怎样实现的了??
总结,该例示注释非常详细,演示Spring托管Hibernate和Struts的Action, 以及Spring的事务声明(包括1.x与2.x的用法)与非事务声明的使用方式。 使用DWR可以方便的使用Spring托管的持久层功能。 目的:希望广大Java...
myeclipse5,tomcat5,struts1.2,servlet2.3,jsp2.0网上购物系统 我把lib去掉了,为了上传
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
servlet 上传 struts 下载 例子 中文上传下载问题以解决 <br>Struts包自己导用1.2版本
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。 struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action...
struts1.2 jsp2.0 servlet2.4 jdk1.5 tomcat5.5 jstl1.1
针对servlet以上的特点,我们可以对servlet进行重构,使其开发起来更简单。更容易,更适合团队协作。 重构的目标: 1、只写一个serlvet或者过滤器,我们这里选择过滤器。 2、不用再写任何的servlet,这样在web.xml中...
asm-commons-2.2.3,asm-3.1,commons-collections,commons-fileupload-1.2,commons-io-1.4,commons-lang-2.5,commons-logging,freemarker-2.3.16,jsp-api,junit-4.4,ognl-3.0.4,org.testng.feature_5.9.0.4,servlet-...
本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...
本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...
[信息办公]Struts图书馆管理系统 struts1.2 jsp2.0 servlet2.4 jdk1.5 tomcat5.5 jstl1.1
个 人 简 历 基 本 信 息 姓名... 熟悉 Java、JSP/Servlet、Struts1.2、Hibernate、Spring、Struts2.0 熟悉 HTML、JavaScript、XML、CSS 、AJAX、JQuery; 能够以 Oracle/Tomcat/MyEclipse/搭配开发环境,Oracle 是企业
J2EE就业课程体系 含servlet+javabean struts1.2,struts2.0 hibernate spring extjs jquery linux oracle
所用技术:jsp2.0+servlet2.4+jstl1.1+Struts1.2+sqlserver2000+tomcat5.5
基于struts 的图书馆管理系统 需要的组建: struts1.2 jsp2.0 servlet2.4 jdk1.5 tomcat5.5 jstl1.1
Struts采用Struts 1.2 版本,MySQL采用MySQL5.0 系统特色: 1,栏目无限级分类,形成树型结构,可以随意增加,修改,移动,删除栏目,移动或删除栏目的同时系统自动移动或删除其对应子栏目和信息。 2,系统支持国际化,...
本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...
本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...
本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...