Struts的学习笔记
1.Struts是一个框架(framework)
2.Struts是一个web框架
3.Struts是一个开源的框架
struts的原理图
setXxxx
getXxxx
属性名首字母要大写
1.使用filter配合Struts解决中文乱码问题
步骤如下,开发一个过滤器,并设置request.setCharacterEncoding("utf-8");
核心代码:
request.
setCharacterEncoding
(
"utf-8"
);
//设置接收编码
chain.doFilter(request, response);//必须的
在web.xml中配置
<filter>
<filter-name>MyFilter1</filter-name>
<filter-class>com.liheng.filter.MyFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.Struts-config.xml文件的配置
<!-- scope="request" 表示该action对应的表单对象的生命周期request = request.setAttribute("userForm",userForm)-->
<!-- scope="session" 表示该action对应的表单对象的生命周期request = request.getSession.setAttribute("userForm",userForm)-->
<!-- scope 这个值默认是session -->
3.action是单态的(对网站的并发性处理有影响),包括actionsverlet
单态是指在整个程序的运行过程中始终是一个对象在为你服务。
4.Struts-config.xml文件的路径不一定要在/web-inf下面。
5.在一个项目中,可不可以有多个Struts的配置文件?
答:可以有。
Struts的标签技术
jstl(jsp standard tag libaray)jsp标准标签库
常用标签:
c标签:
<c:out>案例:
<%
pageContext.setAttribute("abc", "你好");
request.setAttribute("abc", "你好1");
session.setAttribute("abc", "你好2");
application.setAttribute("abc", "你好3");
User user = new User();
user.setUsername("小明");
user.setPassword("123");
request.setAttribute("user1", user);
%>
<body>
<h1>如何输出pageContext/request/sessionapplication域对象的数据</h1>
<c:out value="hello,world"></c:out>
<c:out value="${abc}"></c:out>
<h1>如何输出对象的值</h1>
<c:out value="${user1.username}"></c:out>||<c:out value="${user1.password }"></c:out><br>
${user1.username}@@${user1.password*20}
<s:set>标签:
<c:set var="abc" value="中国 ,北京" scope="request"></c:set>
<%
/* //上面的标签等价于以下的代码
request.setAttribute("abc", "中国,北京"); */
%>
<c:out value="${abc }"></c:out>
<c:remove>标签
<%
request.setAttribute("a", "你好");
%>
<h1>输出</h1>
<c:out value="${a }"></c:out>
<h1>remove</h1>
<c:remove var="a"/>
<c:out value="${a }" default="没有了"></c:out>
<c:catch>标签:
<h1>c_catch的使用</h1>
<c:catch var = "myexception">
<%int i = 8/0; %>
</c:catch>
<c:out value="${myexception}"></c:out>
<c:if>标签:
<%
request.setAttribute("a", "hello");
%>
<h1>c_if的使用</h1>
<c:if test="${a=='hello' }">
ok!
</c:if>
<c:if test="${a!='hello' }">
no ok!
</c:if>
<c:choose>
<c:foreach>