亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

怎么在Java項(xiàng)目中利用servlet實(shí)現(xiàn)一個(gè)自動(dòng)登錄退出功能

怎么在Java項(xiàng)目中利用servlet實(shí)現(xiàn)一個(gè)自動(dòng)登錄退出功能?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)建站長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為紅寺堡企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),紅寺堡網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

UserDao.java從數(shù)據(jù)庫(kù)中查詢用戶名與密碼

//登錄
public User login(User user) throws SQLException {
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
String sql = "select from user where username = ? and password = ?";
return qr.query(sql, new BeanHandler(User.class),user.getUsername(),user.getPassword());
}
UserService.java
public User login(User user){
try {
return ud.login(user);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

UserServlet.java實(shí)現(xiàn)登錄功能

//登錄
public void login(HttpServletRequest request,
HttpServletResponse response) throws IOException, IllegalAccessException, InvocationTargetException, ServletException{
Map map = request.getParameterMap();
User user = new User();
BeanUtils.populate(user,map);
if (map.get("autoLogin")!=null){
Cookie username = new Cookie("username", map.get("username")[0]);
username.setMaxAge(6060);
Cookie password = new Cookie("password", map.get("password")[0]);
password.setMaxAge(60*60);
response.addCookie(username);
response.addCookie(password);
}
user = us.login(user);
if (user != null){
request.getSession().setAttribute("user", user);
response.sendRedirect("/ShopStore/default.jsp");
}
else{
request.setAttribute("message", "用戶或密碼錯(cuò)誤!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}

工具類:AutoLoginFilter.java用來(lái)實(shí)現(xiàn)自動(dòng)登錄

package com.yinhe.web.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yinhe.bean.User;
import com.yinhe.service.UserService;
public class AutoLoginFilter implements Filter{br/>@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
//是否已登錄
if (req.getSession().getAttribute("user") == null){//如果已登錄,則啥都不干
//判斷cookie中有沒(méi)有賬戶密碼
Cookie[] cookies = req.getCookies();
if (cookies != null){
String username = "";
String userpass = "";
for (Cookie cookie : cookies) {
if (cookie.getName().equals("username")){//找到感興趣的cookie
username = cookie.getValue();
}
if (cookie.getName().equals("password")){//找到感興趣的cookie
userpass = cookie.getValue();
}
}
UserService us = new UserService();
User user = new User();
user.setUsername(username);
user.setPassword(userpass);
if (us.login(user) != null){
req.getSession().setAttribute("user", user);
}
}
}
chain.doFilter(request, response);br/>}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stubbr/>}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}

前臺(tái):login.jsp此單選框被選中下次訪問(wèn)即為自動(dòng)登錄


   
<%@ page contentType="text/html;charset=UTF-8" language="java" %> 系統(tǒng)首頁(yè)
<%-- 不推薦使用 <% String loginUser = (String) request.getAttribute("loginUser"); if (loginUser != null){ out.println(loginUser); }else { %> 登錄/注冊(cè) <% } %> --%> <% String loginUser = (String) session.getAttribute("loginUser"); if (loginUser != null){ out.println(loginUser); out.println("退出"); }else { %> 登錄/注冊(cè) <% } %>

主頁(yè)內(nèi)容

Python——畫(huà)一棵漂亮的櫻花樹(shù)(不同種櫻花+玫瑰+圣誕樹(shù)喔)



login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


登錄



<%
String msg = (String)request.getAttribute("msg");
%>
<%
if(msg != null){
out.print(msg);
}
%>

登錄


賬號(hào):



密碼:








info.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


Title








<%
String loginUser = (String) session.getAttribute("loginUser");
if (loginUser != null){
out.println(loginUser);
out.println("退出");
}else {
%>
登錄/注冊(cè)
<%
}
%>



主頁(yè)內(nèi)容


Servlet02.java

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;br/>@WebServlet("/myServlet02")
public class Servlet02 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//修改編碼
request.setCharacterEncoding("utf-8");//請(qǐng)求過(guò)來(lái)的編碼是亨達(dá)返傭www.kaifx.cn/broker/hantecglobal.htmlutf-8
response.setContentType("text/html;charset=utf-8");//響應(yīng)出去的內(nèi)容,為網(wǎng)頁(yè)編碼utf-8
//獲取表單數(shù)據(jù)
String username = request.getParameter("username");
String password = request.getParameter("password");
//驗(yàn)證
if("aaa".equals(username) && "123".equals(password)){
//跳轉(zhuǎn)(請(qǐng)求轉(zhuǎn)發(fā) 請(qǐng)求重定向)
//重定向:兩次請(qǐng)求,不能在request作用域中共享數(shù)據(jù)。
//如果要在兩次請(qǐng)求或多次請(qǐng)求之間,進(jìn)行數(shù)據(jù)共享,需要用session
//使用session步驟
//獲取session
HttpSession session = request.getSession();//如果存在已有的session,則直接返回,否則會(huì)創(chuàng)建一個(gè)新的,返回。
//HttpSession session = request.getSession(true);//同上
//HttpSession session = request.getSession(false);//如果存在已有的session,則直接返回,否則返回null。
//在session的作用域保存數(shù)據(jù),供后續(xù)請(qǐng)求使用
session.setAttribute("loginUser",username);
response.sendRedirect("index.jsp");
/ 多個(gè)頁(yè)面不推薦使用請(qǐng)求轉(zhuǎn)發(fā)
request.setAttribute("loginUser",username);
request.getRequestDispatcher("index.jsp").forward(request,response);
/
}else {
//轉(zhuǎn)發(fā):一次請(qǐng)求,可以在request作用域中,共享數(shù)據(jù)
request.setAttribute("msg","");
// response.sendRedirect("login.jsp");
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}

LogoutServlet.java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;br/>@WebServlet("/logoutServlet")
public class LogoutServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//退出系統(tǒng)
//獲取session
HttpSession session = request.getSession();
//刪除session
session.removeAttribute("loginUser");
//跳轉(zhuǎn)到登錄頁(yè)面/首頁(yè)
response.sendRedirect("index.jsp");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}

web.xml




index.jsp

看完上述內(nèi)容,你們掌握怎么在Java項(xiàng)目中利用servlet實(shí)現(xiàn)一個(gè)自動(dòng)登錄退出功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享標(biāo)題:怎么在Java項(xiàng)目中利用servlet實(shí)現(xiàn)一個(gè)自動(dòng)登錄退出功能
URL鏈接:http://news.spvevtbd.cn/article/gecjdo.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP