韩顺平struts笔记(15页).doc
《韩顺平struts笔记(15页).doc》由会员分享,可在线阅读,更多相关《韩顺平struts笔记(15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-韩顺平struts笔记-第 15 页 Struts视频笔记:Struts是一个开源的web框架,框架提高了程序的规范的同时也约束了程序员的自由为什么会有struts:因为我们对mvc理解的不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展,所以我们有必要用一个统一的规范来开发项目(struts)Struts 的好处: 程序更加规范化,开发效率提高了,可读性增加了,程序的可维护性增加了运行原理:一个请求从浏览器发送给服务器,http:/localhost:8080/web应用/action,web服务器首先解析主机然后解析web应用的名称在解析出资源名转发给总司令Act
2、ionServlet(该类由struts框架提供给我们的无需编写,只需配置)ActionServlet有一个文件struts-config.xml,该文件配置了表单actionForm(军火库),还配置了action,以及他们之间的对应关系,当ActionServlet拿到命令后它会查询struts-config.xml文件去填充数据,把用户的数据填充到表单里边,下个动作就是去调用指定的action(小队长),action去从表单中读取数据,调用某个model(士兵,如service)完成任务,完成任务把结果返回给ActionServlet总司令(返回一个执行的结果),-总司令又去查询stru
3、ts-config.xml文件,决定跳转到哪个jsp页面,返回一个执行结果(形成静态html文件)直接返回给web服务器服务器再把静态页面以http响应给浏览器,登录小项目过程步骤: 新建工程导入struts包编写login.jsp编写actionForm和action配置struts-config.xml编写ok.jsp和err.jsp 配置web.xml 测试Struts.config.xml中的中的scope指的是actionform的生命周期范围 struts中的scope默认是session配置过滤器 public class MyFilter extends HttpServlet
4、 implements Filter Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException arg0.setCharacterEncoding(gb2312); arg1.setCharacterEncoding(gb2312); arg2.doFilter(arg0, arg1); 配置web.xml MyFilter com.chao98.services.MyFilterMyFilter/
5、*上面这次比较浪费资源每次都要去实例化 但是下面这种过滤器不太彻底,往数据库里插入数据时还是会经常出现乱码public class MyFilter extends HttpServlet implements Filter private String encoding; public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException / arg0.setCharacterEncoding(gb2312); /arg1.
6、setCharacterEncoding(gb2312); arg0.setCharacterEncoding(encoding); arg2.doFilter(arg0, arg1);public void init(FilterConfig arg0) throws ServletException encoding=arg0.getInitParameter(encoding);然后在web.xml中加入 encoding GB2312 配置struts-config.xmlweb-app version=2.5 xmlns= xmlns:xsi=http:/www.w3.org/200
7、1/XMLSchema-instance xsi:schemaLocation= action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml debug 2 detail 2 2 action *.action写一个关于安全性的过滤器,用于过滤一些用户注册使用的关键字private String keywords; public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IO
8、Exception, ServletException String username=arg0.getParameter(username); System.out.println(this is safe filter !); System.out.println(username); if(username!=null) for(String key:keywords) if(key.equals(username) arg0.setAttribute(err, username+被第二个管理安全的过滤器拦截了); arg0.getRequestDispatcher(/WEB-INF/t
9、ishi.jsp).forward(arg0, arg1); return ; arg2.doFilter(arg0, arg1); public void init(FilterConfig arg0) throws ServletException keywords=arg0.getInitParameter(keywords).split(;);然后在web.xml配置过滤器还有设置要过滤的关键字 keywords xiaomao;xiaoxiao 每个action是单态的,包括actionserver,对网站并发性有影响 若要证明的话在*action.java中声明一个静态变量,每次访
10、问自加什么是单态: 单态是指在整个运行过程中,始终是一个对象;struts-config.xml默认放在WEB-INF目录下,也可以放到其他地方,只需要在web.xml中的 config /WEB-INF/struts-config.xml有多个struts-config.xml只需用,号隔开 java 中插入数据库的语句需要注意标点 st.executeUpdate(insert into user(username,password) values(+u.getUsername()+,+u.getPassword()+);jstl(jsp startand tag liblary) jsp
11、标准标签库: 可以提高开发速度,代码简洁升级jsp 页面 替换8.5myeclipse:D:ProgramFilesMyeclipseCommonpluginscom.genuitec.eclipse.wizards_8.5.0.me201003052220.jartemplatesjspjsp.vtl的6.5myeclipse:D:ProgramFilesMyEclipse6.5myeclipseeclipsepluginscom.genuitec.eclipse.wizards_6.5.0.zmyeclipse650200806templatesjsp 这样比较符合现在的开发潮流各个jst
12、l标签:等同于request.getAttribute(user).toString();escapeXml表示是否安装html样式显示 默认是true:表示以文本显示 如何输出request,session,application, pageContext域对象的数据 request.setAttribute(hello,request你好!); session.setAttribute(hello,session你好!); application.setAttribute(hello,application你好); pageContext.setAttribute(hello,pageCo
13、ntext你们百度); 这里有个优先级的问题,pageContextrequestsessionapplication 如果是在同一个页面,那么这段代码输出pageContext你们好百度 User u=new User(); u.setUsername(admin); u.setPassword(admin); request.setAttribute(user,u); | | 相当于(User) request.setAttribute(user).getUsername();: 移除 之后 中国北京将不再显示: c:if test=$2ok : request.setAttribute(
14、a,hello); request.setAttribute(age,22); % 判断字符串: hello 判断数值 12 and age 年龄大于12 小于30 $age % ArrayList al=new ArrayList(); User u1=new User(); u1.setUsername(陈超); u1.setPassword(tiger); User u2=new User(); u2.setUsername(system); u2.setPassword(manager); al.add(u1); al.add(u2);request.setAttribute(allu
15、ser,al); $u.username $u.password 第一种迭代 $i 第二种迭代$i 用于分隔字符:$temp什么时候用$符,什么时候不用$如果是从某个域对象中取出值,取的是一个变量就要用$ ,取的是一个固定的值就不要$第一种:Window.open();这种方式比较慢第二种:window.location.href=”/web应用名/goManager?pageNow=”+pageNow1前一页: 当前页:$i c:if test=$pageNow后一页:当前页$pageNow /总页数 $pageCount 跳转到 Map map
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺平 struts 笔记 15
限制150内