- 浏览: 1504693 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
用户登陆页面user_login.jsp对应action为login.do:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>用户登陆</title> <script type="text/javascript"> function confirmCodeNew(o){ o.src="<s:url action='confirm' namespace='/validation'/>"; } </script> </head> <body> <form id="loginform" name="loginform" method="post" action="<s:url action='process'/>" onsubmit="return checkLoginForm();"> <table width="308" height="232" border="0" cellpadding="0" cellspacing="0" class="table3"> <tr> <td colspan="10"><span class="font_red"><s:actionerror/></span></td> </tr> <tr> <td width="82" height="40" align="right" valign="middle" class="font06">用户名:</td> <td colspan="3" align="left" valign="middle"><input type="text" name="username" id="username" tabindex="1" /></td> </tr> <tr> <td width="82" height="40" align="right" valign="middle" class="font06">密 码:</td> <td colspan="3" align="left" valign="middle"><input type="password" name="pwd" id="pwd" tabindex="2" /></td> </tr> <tr> <td width="82" height="40" align="right" valign="middle" class="font06">验证码:</td> <td width="59" align="left" valign="middle"><input name="confirm_code" type="text" class="table3" size="5" maxlength="4" /></td> <td width="79"><img src="<s:url action='confirm' namespace='/validation'/>" onclick="confirmCodeNew(this)" style="cursor:pointer" /></td> <td width="86" align="left" valign="middle" class="font06"> </td> </tr> <tr> <td height="40"> </td> <td colspan="3" align="left" valign="middle"><input type="checkbox" name="rember_me" onclick="remeber_me_change(this);"/> <span class="font06">记住用户名</span></td> </tr> <tr> <td height="50"> </td> <td height="50" colspan="3" align="left" valign="middle"><img src="<s:url value='/images/3vsxdt_36.gif'/>" onclick="checkLoginForm()" style="cursor:pointer" width="158" height="42" border="0" /></td> </tr> </table> </form> </body> </html>
用户登陆类(UserLogin.java):
package com.web.struts.action; import javax.servlet.http.Cookie; import org.apache.commons.lang.StringUtils; import commodel.Member; import com.service.IMemberService; import com.tools.Constant; import com.tools.MD5Bean; /** * title:用户登陆 * * @author conkeyn * @时间 2009-3-24:上午10:06:25 */ public class UserLogin extends BaseAction { /** */ private static final long serialVersionUID = -8059803575427183277L; private Member member; public void setMemberService(IMemberService memberService) { this.memberService = memberService; } private IMemberService memberService; /** * 退出 * * @return */ public String logout() { getSession().removeAttribute(Constant.MEMBER_SESSION_ID); Cookie[] cookies = getRequest().getCookies(); Cookie member_cookie = null; for (int i = 0; i < cookies.length; i++) { member_cookie = cookies[i]; if (member_cookie != null && StringUtils.isNotBlank(member_cookie.getName()) && StringUtils.isNotBlank(member_cookie.getValue()) && member_cookie.getName().equals( Constant.MEMBER_SESSION_ID)) { member_cookie.setMaxAge(-1);// 设置有效期为-1秒,浏览器会自动删除 getResponse().addCookie(member_cookie); break; } } return SUCCESS; } /** * 用户登陆 * * @return */ public String login() { return "login"; } /** * 处理用户登陆 * * @return */ public String process() { String confirm_code = getRequest().getParameter("confirm_code"); String confirmcode = (String) getSession().getAttribute("confirmcode"); if (StringUtils.isNotBlank(confirm_code) && StringUtils.isNotBlank(confirmcode) && confirm_code.equals(confirmcode)) { String username = getRequest().getParameter("username"); String pwd = getRequest().getParameter("pwd"); String rember_me = getRequest().getParameter("rember_me"); MD5Bean md5 = new MD5Bean(); pwd = md5.MD5Encrypt(pwd); member = memberService.getMember(username); if (member == null) { this.addActionError("不存在该用户,请注册后再登陆!"); return ERROR; } else if (!pwd.equalsIgnoreCase(member.getPwd())) { this.addActionError("密码错误,请重新输入!"); return ERROR; } getSession().setAttribute(Constant.MEMBER_SESSION_ID, member.getUsername()); // 设置cookie if (StringUtils.isNotBlank(rember_me) && rember_me.equalsIgnoreCase("true")) { Cookie cookie = new Cookie(Constant.MEMBER_SESSION_ID, member .getUsername()); cookie.setMaxAge(60 * 60 * 24 * 365); getResponse().addCookie(cookie); } member.setLoged(true); memberService.saveMember(member); } else { this.addActionError("验证码错误,请重新输入!"); return ERROR; } return SUCCESS; } public Member getMember() { return member; } public void setMember(Member member) { this.member = member; } }
Struts配置文件(struts-login.xml):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" > <struts> <package name="login" extends="struts-default"> <!-- 登陆 --> <action name="login" class="memberAction" method="login"> <result name="login" type="dispatcher"> /WEB-INF/pages/userlogin.jsp </result> </action> <action name="logout" class="memberAction" method="logout"> <result name="success" type="redirectAction">login</result> </action> <action name="process" class="memberAction" method="process"> <result name="error" type="dispatcher">/WEB-INF/pages/userlogin.jsp </result> <result name="success" type="dispatcher">/WEB-INF/pages/userlogin_msg.jsp </result> </action> </package> </struts>
发表评论
-
Struts2 (Json) + jQuery 组合的简单用法
2011-03-01 23:02 9961、将struts2的json插件加入web工程的lib,js ... -
Struts2中$,#,%的区别
2011-03-01 22:57 1354转自:http://hi.baidu.com/di ... -
<s:generator>
2011-02-27 21:54 1403<s:generator val="%{'aa ... -
<s:merge>
2011-02-27 21:45 866<s:set var="americanCar ... -
<s:append>
2011-02-27 21:44 1213<s:set var="list1" ... -
<s:iterator>
2011-02-27 21:01 1369属性名称 必填项 默认值 ... -
<s:bean>
2011-02-27 18:32 915public class DegreeConverter { ... -
<s:param>
2011-02-27 18:21 3573param标签用来把一个参数传递给包含着它的那个标签。 不管 ... -
updownselect
2011-02-27 16:24 1364<s:updownselect name="c ... -
combobox
2011-02-27 16:08 928<s:combobox name="combo ... -
checkboxlist
2011-02-27 12:15 866ddd public class LoginAction ... -
select optgroup
2011-02-27 11:58 692代码片段: public class LoginAction ... -
select标签
2011-02-23 21:17 987import com.opensymphony.xwork2. ... -
radio标签
2011-02-23 21:13 987import java.util.SortedMap; ... -
list、listkey、listValue属性
2011-02-22 21:07 7223list、listKey、listValue属性对 ... -
Ongl 与 ValueStack ActionContext
2011-01-09 21:03 1450转自:http://blog.sina.com.c ... -
struts2.0的ognl表达式研究
2011-01-09 21:02 1008OGNL —— 完美的催化剂 为了解决数据从V ... -
关于Struts2.0 标签中采用%{} 的处理原理
2011-01-09 20:57 1570项目中采用struts2.0时,常常使用计算表单式的处理源码 ... -
struts2 tags
2010-01-08 13:22 11981.<s:property> propert ... -
Struts2和Freemarker整合应用批量静态页面的生成
2009-11-07 23:19 3819利用Struts2生成静态页面其实很灵活,很强大,尤其是利用S ...
相关推荐
一、登录到JIRA 许多JIRA实例都会根据 权限 限制某些用户或用户组查看问题以及对问题的操作。而有些 JIRA实例就允许匿名用户访问,就像http://www.jira.cn中文演示站点允许任何未注册用户体验JIRA。 当你还没有登录...
注意:如果是当前用户设置完要退出再登录后台。 4、重新统计各项数据(updata.asp) 模块功能包括:更新用户数据、修复用户数据、更新系统统计、更新缓存数据、更新群组数据、更新到期状态等。可根据名功能之下...
结论:采用pc端数据抓取结合模拟人工操作演出退出登录时长同时做好退出登录的消息提醒,实测20小时需要登录一次还是能够接受的 *** ## 前端生成付款二维码 接口1: alipays://platformapi/startapp?appId=20000123...
2 域名转发注意:转发时请不要选择隐藏文件路径选项(框架功能),这样会导致用户无法登录 3 管理员在修改会员密码时只要输入新密码一项即可(以便帮助会员更改密码) 4 管理员登录 管理留言 时,第一次输入错误...
在一般的系统实现中,都使用了2、3、4、5几个级别,在 Redhat系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示XDM图形登录方式。7- 9级别也是可以使用的,...
Text1.Text = "菜单(Menu)是Windows窗口的基本组成部分,大多数应用程序都有菜单,菜单中包含着各种命令的集合,Visual Basic允许用户为程序中的每个窗体创建一个独立的菜单系统,菜单包括下拉菜单和弹出式菜单。...
用户可以在网站上注册一个帐户,建立自己的博客,用户可以登录到自己的管理界面,管理文章、评论、相片、个人信息等。 2。博客首页功能。可显示火炬博客系统的全面信息,如最新文章、热门文章等。 3。我的...
用户可以在网站上注册一个帐户,建立自己的博客,用户可以登录到自己的管理界面,管理文章、评论、相片、个人信息等。 2。博客首页功能。可显示火炬博客系统的全面信息,如最新文章、热门文章等。 3。我的...
用户可以在网站上注册一个帐户,建立自己的博客,用户可以登录到自己的管理界面,管理文章、评论、相片、个人信息等。 2。博客首页功能。可显示火炬博客系统的全面信息,如最新文章、热门文章等。 3。我的...
第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3章 01 网络基础和dos命令 02 为何学习linux 03 课程内容介绍 04 操作系统内核与系统调用 05 操作系统安装原理 06 linux操作系统安装 07 初识linux命令 08 ...
程序设计教程.pdf>>人民邮电出版社的...15.4.3管理员登录与退出实现 306 15.4.4系统管理实现 313 15.4.5图书管理实现 319 15.4.6读者管理实现 329 15.4.7借还管理实现 333 15.4.8前台功能实现 336 本章小结 342
【后台登录】而后台帐号的用户和密码都可以更改,在右侧的管理菜单中进行更改,而且管理帐号只有一个,它不是会员,没有基本信息;会员要是认证以上等级,右边的[管理留言]才会显示,请注意这里的区别,操作方法:...
二进制是基数为2,每位的权是以2 为底的幂的进制,遵循逢二进一原则,基本符号为0和1。采用二进制码表示信息,有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数...
7.这时执行程序,可实现按下登录按钮进入主窗口,按下退出按钮退出程序。 8.添加用户名密码判断功能。将登陆按钮的槽函数改为: void loginDlg::on_loginBtn_clicked() { if(m_ui->usrLineEdit->text()==tr("qt")&&m...
<!...<HTML><HEAD>关于java异常处理(讲义)--JSP中文网 ...第二步:处理对象与方法:声明4个GUI组件对象和1个用于存储计算结果(double)的和2个被除数与除数基本类型(int)<BR><BR>A、 初始化对象方法init()<BR>B...
6.6.3 finger——查看登录用户信息 320 6.6.4 query——终端服务查询 320 6.6.5 reset session——重置会话 323 第7章 系统诊断 324 7.1 relog——导出性能日志文件 324 7.2 typeperf——性能计数器 325 7.3 ...
6.6.3 finger——查看登录用户信息 320 6.6.4 query——终端服务查询 320 6.6.5 reset session——重置会话 323 第7章 系统诊断 324 7.1 relog——导出性能日志文件 324 7.2 typeperf——性能计数器 325 7.3 ...