SpringMVC 차단기 로그 인 인증 실현
프로젝트 구 조 는 그림 과 같다.
필요 한 jar:springMVC 설정 에 필요 한 jar 와 jstl 에 필요 한 jar 가 있 습 니 다.
SpringMVC 가방 의 역할 설명:
aopalliance.jar:이 가방 은 AOP 연맹 의 API 패키지 로 절단면 을 위 한 인터페이스 가 포함 되 어 있 습 니 다.보통 spring 등 동적 짜 임 기능 을 가 진 프레임 워 크 는 이 jar 에 의존 합 니 다.
spring-core.jar:이 jar 파일 은 Spring 프레임 워 크 의 기본 핵심 도구 류 를 포함 합 니 다.Spring 의 다른 구성 요 소 는 이 가방 에 사용 해 야 하 는 클래스 입 니 다.다른 구성 요소 의 기본 핵심 입 니 다.물론 응용 시스템 에서 도 이 도구 류 를 사용 할 수 있 습 니 다.
외부 의존 Commons Logging(Log4J).
spring-beans.jar:이 jar 파일 은 모든 응용 프로그램 에 사용 되 는 것 입 니 다.설정 파일 에 접근 하고 bean 을 만 들 고 관리 하 며 Inversion of Control/을 포함 합 니 다.
Dependency Injection(IoC/DI)작업 과 관련 된 모든 클래스 입 니 다.기본 적 인 IoC/DI 지원 만 있 으 면 spring-core.jar 및 spring-beans.jar 파일 을 도입 합 니 다.
됐 습 니 다.
spring-aop.jar:이 jar 파일 은 Spring 의 AOP 기능 을 사용 할 때 필요 한 클래스 와 원본 메타 데이터 지원 을 포함 합 니 다.AOP 기반 Spring 기능 을 사용 합 니 다.예 를 들 어 성명 형 사무 관리(Declarative Transaction Management)도 응용 프로그램 에 이 jar 패 키 지 를 포함 해 야 합 니 다.
외부 의존 spring-core,(spring-beans,AOP Alliance,CGLIB,Commons Attributes).
spring-context.jar:이 jar 파일 은 Spring 핵심 에 대량의 확장 을 제공 합 니 다.Spring Application Context 기능 을 사용 할 때 필요 한 모든 클래스,JDNI 를 찾 을 수 있 습 니 다.
필요 한 모든 클래스,instrumentation 구성 요소 및 검증 Validation 과 관련 된 클래스 입 니 다.
외부 의존 spring-beans,(spring-aop).
spring-context-support:Spring-context 확장 지원,MVC 에 사용
spring-web.jar:이 jar 파일 은 웹 응용 개발 시 Spring 프레임 워 크 를 사용 할 때 필요 한 핵심 클래스 를 포함 합 니 다.웹 응용 프로그램 Context 특성 을 자동 으로 불 러 오 는 클래스,Struts 와 JSF 통합 클래스,파일 업로드 지원 클래스,Filter 클래스 와 대량의 도구 보조 클래스 를 포함 합 니 다.
외부 의존 spring-context,Servlet API,(JSP API,JSTL,Commons FileUpload,COS).
spring-webmvc.jar:이 jar 파일 은 Spring MVC 프레임 워 크 와 관련 된 모든 종 류 를 포함 합 니 다.프레임 워 크 를 포함 한 Servlets,웹 MVC 프레임 워 크,컨트롤 러,보기 지원.물론 응용 프로그램 이 독립 된 MVC 프레임 워 크 를 사용 했다 면 이 JAR 파일 의 어떤 종류 도 필요 없습니다.
외부 의존 spring-web,(spring-support,Tiles,iText,POI).
spring-aspects.jar:aspectJ 에 대한 지원 을 제공 합 니 다.예 를 들 어 Eclipse AJDT 와 같은 기능 을 IDE 에 편리 하 게 통합 할 수 있 도록 합 니 다.
외부 의존.
spring-jdbc.jar:이 jar 파일 은 Spring 이 JDBC 데이터 에 접근 하 는 모든 종 류 를 포함 합 니 다.
외부 의존 spring-beans,spring-dao.
spring-test.jar:Junit 등 테스트 프레임 워 크 에 대한 간단 한 패키지
spring-tx.jar:Spring 의 tx 트 랜 잭 션 처리 jar
spring-expression.jar:Spring 표현 식 언어
작성 컨트롤 러:
package com.mvc.action;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
*
*/
@Controller
public class LoginControl {
/**
*
* @param session
* HttpSession
* @param username
*
* @param password
*
* @return
*/
@RequestMapping(value="/login")
public String login(HttpSession session,String username,String password) throws Exception{
// Session
session.setAttribute("username", username);
//
return "redirect:hello.action";
}
/**
*
* @param session
* Session
* @return
* @throws Exception
*/
@RequestMapping(value="/logout")
public String logout(HttpSession session) throws Exception{
// Session
session.invalidate();
return "redirect:hello.action";
}
}
작성 차단기:
package com.mvc.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
*
*/
public class LoginInterceptor implements HandlerInterceptor{
/**
* Handler
*/
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception exc)
throws Exception {
}
/**
* Handler ,ModelAndView
*/
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView) throws Exception {
}
/**
* Handler
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handler) throws Exception {
// URL
String url = request.getRequestURI();
//URL:login.jsp ; demo login.jsp , URL
if(url.indexOf("login.action")>=0){
return true;
}
// Session
HttpSession session = request.getSession();
String username = (String)session.getAttribute("username");
if(username != null){
return true;
}
// ,
request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
return false;
}
}
SpringMVC 설정 파일:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- -->
<!-- action , spring , action spring -->
<context:component-scan base-package="com.mvc.action" />
<!-- Handler
<bean name="/hello.action" class="com.mvc.action.HelloAction"></bean>
-->
<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
<!-- ViewResolver -->
<!-- jsp, jstl -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- mvc:annotation-driven , -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- -->
<mvc:interceptors>
<!-- , -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.mvc.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>
로그 인 화면:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="${pageContext.request.contextPath}/login.action" method="post">
:<input type="text" name="username" /><br>
:<input type="text" name="password" /><br>
<input type="submit" value=" " />
</form>
</body>
</html>
로그 인 성공 후 점프 하 는 창hello.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'hello.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
:${username}
<c:if test="${username!=null}">
<a href="${pageContext.request.contextPath }/logout.action"> </a>
</c:if>
${message}
</body>
</html>
Hello Control.java,저 는 Hello World 형식 으로 썼 습 니 다.프로젝트 에 따라 고 쳐 야 합 니 다.
package com.mvc.action;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
// Handler
@Controller
public class HelloAction{
@RequestMapping("/hello")// url
public String hello(Model model){
String message = "SpringMVC";
// model Attribute
model.addAttribute("message",message);
return "hello";
}
// public ModelAndView handleRequest(HttpServletRequest request,
// HttpServletResponse response) throws Exception {
//
// //
// String message = "hello world!";
//
// // request
// //request.setAttribute("message", message);
//
// ModelAndView modelAndView = new ModelAndView();
// // request.setAttribute(),
// //model
// modelAndView.addObject("message", message);
// //
// modelAndView.setViewName("hello");
//
// return modelAndView;
// }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ssm 프레임워크 업로드 이미지 로컬 및 데이터베이스에 저장 예시본고는 ssm 프레임워크 업로드 이미지를 로컬과 데이터베이스에 저장하는 예시를 소개하고 주로 Spring+SpringMVC+MyBatis 프레임워크를 사용하여 ssm 프레임워크 업로드 이미지의 실례를 실현했다. 구체...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.