基于struts的登录验证:
1.新建web项目;
2.将struts的开发包加入web工程
3.编写login.jsp
4.编写ActionForm(用户表单)Action分控制器;
5.编写struts-config.xml文件,该文件用于配置action actionform的对应关系,和跳转位置,一般放在WEB-INF目录下
6.编写成功失败页面jsp;
7.配置web.xml文件,在该文件中配置struts-config.xml文件
8.测试ok
扩展
1.在登陆成功之后显示用户名;
2.使用filter配合struts解决中文乱码;
写一个过滤器,并设置request.setCharacterEncoding("utf-8");
  1. public class MyFilter extends HttpServlet implements Filter {
  2. @Override
  3. public void doFilter(ServletRequest request, ServletResponse response,
  4. FilterChain filter) throws IOException, ServletException {
  5. // TODO Auto-generated method stub
  6. request.setCharacterEncoding("utf-8");//设置编码
  7. filter.doFilter(request, response);//必须
  8. }
  9. @Override
  10. public void init(FilterConfig arg0) throws ServletException {
  11. // TODO Auto-generated method stub
  12. }
  13. }
在web.xml文件中配置过滤器:
  1. <!-- 配置filter -->
  2. <filter>
  3. <filter-name>MyFilter</filter-name>
  4. <filter-class>filter.MyFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>MyFilter</filter-name>
  8. <url-pattern>/*</url-pattern>
  9. </filter-mapping>
3.struts-config.xml 
4.scope:
5.每个action都是单态的,包括ActionServlet;
单态:指在程序运行过程中始终只有一个实例对象;
6.struts-config.xml 不一定在WEB-INF目录下,也不一定只有一个只需在web.xml文件配置即可.
  1. <init-param>
  2. <param-name>config</param-name>
  3. <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-2.xml</param-value>
  4. </init-param>
7.....

基于struts的用户注册验证:
1.导入struts标签库;
  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  8. <title>Insert title here</title>
  9. </head>
  10. <body>
  11. <html:form action="/register.do" method="post" >
  12. 用户:<html:text property="username"></html:text><br/>
  13. 密码:<html:text property="password"></html:text><br/>
  14. 邮箱:<html:text property="email"></html:text><br/>
  15. <html:submit value="注册"></html:submit>
  16. <html:cancel value="取消"></html:cancel>
  17. </html:form>
  18. </body>
  19. </html>
注意:这里的用户、密碼、郵箱必须在<html:form>中并且在form中有相应的字段与之对应.否则会报500错误.因为struts默认认为你的输入框等控件是要用来提交的,所以,必须写在form中且有相应的form类与之对应.而不是在你提交的时候才检测.
2.在web.xml中添加字符编码过滤器Filter,在配置文件中设置字符编码可以使程序更加灵活,也更利于维护;
  1. <filter>
  2. <filter-name>MyFilter</filter-name>
  3. <filter-class>com.zky.struts.filter.MyFilter</filter-class>
  4. <init-param>
  5. <param-name>encoding</param-name>
  6. <param-value>utf-8</param-value>
  7. </init-param>
  8. </filter>
  9. <filter-mapping>
  10. <filter-name>MyFilter</filter-name>
  11. <url-pattern>/*</url-pattern>
  12. </filter-mapping>
  1. public class MyFilter extends HttpServlet implements Filter {
  2. private String encoding;
  3. @Override
  4. public void doFilter(ServletRequest request, ServletResponse response,
  5. FilterChain chain) throws IOException, ServletException {
  6. // TODO Auto-generated method stub
  7. request.setCharacterEncoding(encoding);
  8.        chain.doFilter(request, response);
  9. }
  10. @Override
  11. public void init(FilterConfig config) throws ServletException {
  12. // TODO Auto-generated method stub
  13. encoding = config.getInitParameter("encoding");
  14. }
  15. }
3.在web.xml中添加关键字过滤器SafeFilter,虽然在Action中也可以实现关键字过滤,但是在filter中实现更好;

  1. <filter>
  2. <filter-name>SafeFilter</filter-name>
  3. <filter-class>com.zky.struts.filter.SafeFilter</filter-class>
  4. <init-param>
  5. <param-name>keywords</param-name>
  6. <param-value>拉登;小明;XXX;西吧</param-value>
  7. </init-param>
  8. </filter>
  9. <filter-mapping>
  10. <filter-name>SafeFilter</filter-name>
  11. <url-pattern>/*</url-pattern>
  12. </filter-mapping>
java代码:

  1. public class SafeFilter extends HttpServlet implements Filter {
  2. private String[] keywords;
  3. @Override
  4. public void doFilter(ServletRequest request, ServletResponse response,
  5. FilterChain chain) throws IOException, ServletException {
  6. // TODO Auto-generated method stub
  7. String username = (String) request.getAttribute("username");
  8. if (username != null) {
  9. for (String keyword : keywords) {
  10. if (keyword.equals(username)) {
  11.                    request.getRequestDispatcher("/WEN-INF/err.jsp").forward(request, response);
  12. return;
  13. }
  14. }
  15. }
  16. chain.doFilter(request, response);
  17. }
  18. @Override
  19. public void init(FilterConfig config) throws ServletException {
  20. // TODO Auto-generated method stub
  21. keywords = config.getInitParameter("keywords").split(";");
  22. }
  23. }
问题:1.在web.xml文件中编辑filter的配置信息是,不小心删除了ActionServlet的部分配置文件,导致404错误;
2.在获得用户输入的用户名是应使用request.getParameter("username");而不是request.getAttribute("username");

导致过滤器无法使用.
案例:文件的上传下载
* 文件上传需要解决的几个问题:
1.文件名重复时,后上传的文件会覆盖先上传文件的问题;
2.中文文件名显示乱码问题;

null

转载于:https://www.cnblogs.com/Jxiaobai/p/6618572.html

struts 韩顺平相关推荐

  1. servletjsp入门.....韩顺平笔记

    u 背景知识介绍 J2EE的13种技术 java->servlet->jsp [技术总是有一个演变过程] zip粘贴到word设置 u 回顾一下我们现有的技术 java 基础(面向对象,集 ...

  2. 韩顺平php教程笔记,PHP笔记,韩顺平php笔记_PHP教程

    PHP笔记,韩顺平php笔记 Mysql ----------------------------------------------------------------------------- M ...

  3. 韩顺平 mysql sqlhelper类_(最全)韩顺平jsp购物车源代码(包含数据库)

    [实例简介] 韩顺平的jsp购物车项目,所有源码都在,包含数据库,是网络上最全的 [实例截图] [核心代码] myshopping └── myshopping ├── myshopping │   ...

  4. 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...

    2011韩顺平轻松搞定网页设计(html+css+js)之 javascript现场授课笔记(完整版) 视频18整和19的前半部分不用看 Javascript的基本介绍 JS是用于WEB开发的脚本语言 ...

  5. 韩顺平.2011最新版.玩转oracle视频教程笔记,韩顺平.2011最新版.玩转oracle视频教程(笔记)...

    韩顺平.2011最新版.玩转oracle视频教程 ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied 警告: 您 ...

  6. 韩顺平HTML5教程www.gis520.com

    传智播客.韩顺平.HTML5游戏公开课-坦克大战01.HTML5介绍.HTML5发展.HTML5学习网站推荐.wmv http://dl.vmall.com/c0b7xrkftf 传智播客.韩顺平.H ...

  7. 韩顺平mysql优化笔记_韩顺平 mysql优化笔记.doc

    韩顺平 mysql优化笔记.doc 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: ? 垂直分割表如果你的数据库的存储引擎是 MyISAM 的 ...

  8. 韩顺平循序渐进学java 第21.22.23.24讲 集合

    21.1 引出问题 一个问题? 前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决? 请做一个公司职员薪水管理系统,要求完成如下功能: ...

  9. 韩顺平Linux教程学习笔记

    Linux系统学习笔记   新装了deepin v23系统,结果磁盘没设置好,玩崩了,百度半天修复不了,看看韩顺平老师的Linux操作课程,做做笔记(只记录对自己有用的).   B站网址 基础篇·Li ...

最新文章

  1. python 字典_Python数据结构:字典那些事儿
  2. Mac上更新Ruby
  3. Element-ui自定义主题换肤
  4. D-query SPOJ - DQUERY(求区间不同数的个数)(树状数组||线段树+离散)(主席树+在线)
  5. Work Queue based multi-threading
  6. 如何将函数的实际参数转换成数组
  7. 【Python爬虫】Request库入门
  8. Android新建一个activty
  9. python 分解模数_Python模数
  10. Hadoop的安装和使用
  11. Schneider TM200CE40U 通讯与编程
  12. zune自搭虚拟服务器离线升级,Zune 30g 购买/使用 个人经验贴,希望可以帮到有需要的烧友~...
  13. class和style绑定
  14. zblog php 模板修改,ZBlog博客程序zblogPHP主题模板定制仿制修改
  15. 房间类游戏中的房间ID管理
  16. 小知识------SATA
  17. python画统计图
  18. 如何在Power BI Desktop中创建词云生成器
  19. 一致 先验分布 后验分布_先验概率、似然函数与后验概率
  20. 磁盘管理找不到新加硬盘,借助DG(DiskGenius)实现新加硬盘初始化分区和之前硬盘的数据迁移

热门文章

  1. MTK平台apnspn的配置
  2. 增加BUG的测试版本字段
  3. 算法精品讲解(2)——DP问题入门(适合零基础者,一看就会)
  4. Chrome 谷歌游览器快捷键(Shortcut)
  5. 商云通安装(一):电信搭建SIP电话环境
  6. 对 Access 数据库中日期字段操作时 OleDbParameter 的问题及解决
  7. “NING咖啡”来袭,李宁的流量把戏还是真未来?
  8. linux 的top命令详解
  9. 中国移动首次明确的LTE终端频率要求
  10. 住宅园区光纤布线案例