日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用户登录功能以及登录拦截

發布時間:2024/1/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用户登录功能以及登录拦截 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、用戶登錄

? ? ? ? 思路:jsp實現表單提交,action用模型驅動的方式接收數據,在數據庫查找有沒有與之匹配的記錄,若沒有,回到登錄界面(并將用戶填的數據回顯,并給出錯誤提示),若有,進入首頁,顯示用戶名

1、jsp頁面

<form action="${pageContext.request.contextPath }/loginAction_login.action" method="post">賬號:<input type="text" name="account" value="${user.user_name }" /><br>密碼:<input type="password" name="password" /><br><input type="submit" value="登錄"> </form>

2、action

public class LoginAction extends ActionSupport implements ModelDriven<User> {private User user = new User();UserService service = new UserService();public String login() {List<User> list = service.login(user);if (list.size()==0) {this.addActionError("您輸入的信息有誤!");ServletActionContext.getRequest().getSession().setAttribute("user", user);return LOGIN;}else {ServletActionContext.getRequest().getSession().setAttribute("user", list.get(0));return SUCCESS;}}@Overridepublic User getModel() {return user;}}

3、配置struts2.xml

<package name="package1" extends="struts-default" namespace="/"><action name="loginAction_*" class="com.wasion.web.action.LoginAction" method="{1}"><result name="success" type="redirect">/index.jsp</result><result name="login">/login.jsp</result></action> </package>

4、service及dao層實現

public class UserService {UserDao dao = new UserDao();public List<User> login(User user) {return dao.login(user);}}public List<User> login(User user) {Session session = HibernateUtils.openSession();Transaction ts = session.beginTransaction();Query query = session.createQuery("from User where user_name=? and user_password=? and user_code=?");query.setParameter(0, user.getUser_name());query.setParameter(1, user.getUser_password());query.setParameter(2, user.getUser_code());List<User> list = query.list();ts.commit();session.close();return list; }

效果:

失敗>>

成功>>

二、登錄攔截

1、編寫攔截器(繼承MethodFilterInterceptor類)

public class LoginInterceptor extends MethodFilterInterceptor {@Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {User user = (User) ServletActionContext.getRequest().getSession().getAttribute("user");if (user == null) { // 未登錄ActionSupport actionSupport = (ActionSupport) invocation.getAction();actionSupport.addActionError("您沒有權限,請先登錄!");return actionSupport.LOGIN;}else { // 已經登錄return invocation.invoke();}}}

2、添加配置文件

<package name="package1" extends="struts-default" namespace="/"><!-- 攔截器聲明 --><interceptors><interceptor name="LoginInterceptor" class="com.wasion.web.interceptor.LoginInterceptor"></interceptor></interceptors><global-results><result name="login">/login.jsp</result></global-results><action name="customerAction_*" class="com.wasion.web.action.CustomerAction" method="{1}"><result name="success">/success.jsp</result><result name="find_success">/jsp/customer/list.jsp</result><result name="findIdSuccess">/jsp/customer/edit.jsp</result><!-- 配置攔截器 --><interceptor-ref name="defaultStack"></interceptor-ref><interceptor-ref name="LoginInterceptor"></interceptor-ref></action><action name="loginAction_*" class="com.wasion.web.action.LoginAction" method="{1}"><result name="success" type="redirect">/index.jsp</result><!-- 配置攔截器 --><interceptor-ref name="defaultStack"></interceptor-ref><interceptor-ref name="LoginInterceptor"><param name="excludeMethods">login</param></interceptor-ref></action> </package>

有一個問題,當我們在這個頁面點擊登錄后,會產生頁面嵌套的效果,只要在login.jsp表單提交的form中修改一個屬性即可

<form action="${pageContext.request.contextPath }/loginAction_login.action" method="post" target="_parent">

總結

以上是生活随笔為你收集整理的用户登录功能以及登录拦截的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。