`

spring-mvc-case

阅读更多
spring mvc 是当前java比较流行的一种mvc架构,下文主要展示spring mvc 使用的配置。

web.xml 的统一配置(仅展示和spring 配置相关部分)
<!--  Spring context 服务层的配置文件 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
        	classpath*:META-INF/spring/*Context.xml,
        	classpath*:META-INF/spring/*-beans.xml
        </param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- app servlet -->
	<servlet>
		<servlet-name>AppServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>
				/WEB-INF/ServletConfigs/AppServlet/servlet-context.xml
			</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<!-- 覆盖default servlet的/, springmvc servlet将处理原来处理静态资源的映射 -->
	<servlet-mapping>
		<servlet-name>AppServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>


1、完全基于注解的方案。
servlet-context.xml 配置:

	<!-- 自动搜索@Controller标注的类 -->
	<context:component-scan base-package="org.login.web" >
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
	</context:component-scan>
	
	<!-- 默认的注解映射的支持 
<mvc:annotation-driven />

           -->
		<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
	
		<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"/>
		<property name="suffix" value=".jsp"/>
	</bean>
</beans>  



controller 注解
@Controller
@RequestMapping("/login")
public class LoginController {
	private final static Logger logger = LoggerFactory.getLogger(LoginController.class);
	@RequestMapping("/guest")
	public String login(HttpServletRequest request,HttpServletResponse response){
		logger.info("hello {}",request);
		request.setAttribute("username", "admin");
		request.setAttribute("password", "123456");
		return "login";
	}

}


以上ok
http://localhost:8080/login/guest


2、基于xml的配置
servlet-context.xml 配置:
 <bean id = "loginHandleRequest" class="org.login.web.LoginHandleRequest"/>
    <bean id = "loginController" class="org.login.web.LoginController"/>
    <bean id = "loginServlet" class="org.login.web.LoginServlet"/>


	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
	    <property name="urlMap">
	       <map>
	          <entry key="/login/guest" value="loginHandleRequest"/>
	          <entry key="/login/guest2" value="loginController"/>
	          <entry key="/login/guest3" value="loginServlet"/>
	       </map>
	    </property>
	</bean>
	
	<bean class = "org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
	<bean class = "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
	<bean class = "org.springframework.web.servlet.handler.SimpleServletHandlerAdapter"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"/>
		<property name="suffix" value=".jsp"/>
	</bean>


java代码:
/**
 * @author wangxinchun
 */
public class LoginController implements Controller {
	private final static Logger logger = LoggerFactory.getLogger(LoginController.class);
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		logger.info("hello {}", request);
		request.setAttribute("username", "admin");
		request.setAttribute("password", "123456");
		return new ModelAndView("login");
	}
}


/**
 * @author wangxinchun
 */
public class LoginHandleRequest implements HttpRequestHandler {
	private final static Logger logger = LoggerFactory.getLogger(LoginHandleRequest.class);

	public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		logger.info("hello {}", request);
		request.setAttribute("username", "admin");
		request.setAttribute("password", "123456");
		request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
	}
}


/**
 * @author wangxinchun
 */
public class LoginServlet extends GenericServlet {
	private static final long serialVersionUID = 1L;
	private final static Logger logger = LoggerFactory.getLogger(LoginServlet.class);

	@Override
	public void service(ServletRequest request, ServletResponse response)
			throws ServletException, IOException {
		logger.info("hello {}", request);
		request.setAttribute("username", "admin");
		request.setAttribute("password", "123456");
		request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
	}
}


请求:
http://localhost:8080/login/guest
http://localhost:8080/login/guest2
http://localhost:8080/login/guest3
ok~
0
0
分享到:
评论

相关推荐

    spring-mvc-showcase

    《Spring MVC Showcase 深入解析》 Spring MVC 是 Spring 框架的重要组成部分,它为构建基于模型-视图-控制器(Model-View-Controller)架构的 Web 应用程序提供了一种强大的解决方案。本篇文章将深入探讨 "spring-...

    spring-mvc-showcase-case1-client

    本文将详细探讨如何将这三者集成,并通过"spring-mvc-showcase-case1-client"项目实例进行深入解析。 首先,Spring MVC 是一个基于模型-视图-控制器(MVC)设计模式的Web应用框架,它为开发者提供了处理HTTP请求、...

    Spring-mvc-showcase

    《Spring MVC 展示项目详解》 Spring MVC 是 Spring 框架的重要组成部分,它是一个模型-视图-控制器(Model-View-Controller)架构,用于构建 Web 应用程序。"Spring-mvc-showcase" 是一个官方提供的 Maven 工程,...

    spring-mvc-showcase-master

    《Spring MVC 展示项目详解》 Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)框架。本项目"spring-mvc-showcase-master"旨在全面展示 Spring MVC 的功能和用法...

    Spring mvc showcase

    **Spring MVC Showcase 知识点详解** Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。在"Spring MVC Showcase"项目中,我们可以深入理解Spring MVC的核心概念、配置...

    spring-boot-starter-camunda

    3. **Spring MVC集成**:Camunda的Actuator模块可以与Spring MVC一起使用,提供监控和管理应用的端点,例如查看运行中的流程实例和任务。 4. **Spring Security集成**:通过Spring Security,可以轻松地实现对...

    spring mvc3 showcase(Spring MVC3 Demo)

    这是老外开发的一个Spring MVC3的例子,Spring版本为:3.2.0.RELEASE。 这个例子展示了Spring MVC的很多特性,其中使用到了Json数据格式和jQuery及jQuery UI技术,很好的一个Demo,值得学习、效仿! 工程使用Maven...

    基于SpringMVC+Spring+Hibernate+JQuery+Bootstrap框架的OA系统

    系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: &gt;1.系统管理 &gt;&gt;系统管理包含有:基础...

    quest-spring-thymeleaf1

    Thymeleaf是一种广泛用于构建动态Web界面的Java库,尤其适用于Spring MVC应用程序。在这个项目中,我们将深入探讨Spring框架与Thymeleaf的协同工作方式,以及如何在实际开发中应用它们。 1. **Spring框架**:Spring...

    springMvc+showcase

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在 "springMvc+showcase" 中,我们看到的是一个完整的示例项目,...

    first-ssm:搭建的Spring-SpringMVC-Mybatis框架

    此外,Mybatis的动态SQL功能使条件查询变得简单,避免了大量的if-else或switch-case语句。 **整合过程** 集成这三个框架通常包括以下步骤: 1. 引入依赖:在项目pom.xml中添加Spring、SpringMVC和Mybatis的相关...

    RSA 加密程序 Version 1.5(支持文件、文本加密解密, 支持多种语言)

    此外,视图消息的处理方法去掉了1.0版本的庞大的switch-case分支,换为精简的自定义的STL消息映射表机制,更容易扩展。 文件包括源代码和安装包,源代码里包括自定义的RSA加密解密模型,方便复用。 程序采用了经典的...

    struts2 hibernate spring case jar

    Spring框架提供了大量的模块,如Spring MVC(用于构建Web应用)、Spring JDBC和MyBatis支持(数据库操作)、Spring AOP(切面编程)、Spring Security(安全控制)等。Spring的IoC容器负责管理对象的生命周期和依赖...

    springmvc-freemarker-scala:spring mvc + freemarker + scala

    1. 配置Scala Bean:在Scala代码中,我们可以定义case class作为Bean,然后通过Scala的`@Component`注解标记,让Spring自动管理这些Bean。 2. 使用Scala函数作为Controller:Scala的高阶函数特性使得我们可以直接用...

    axios详解-轻松搞定CRUD:掌握Axios实现增删改查功能的精髓

    在本文中,我们将深入探讨如何使用axios库进行CRUD(创建、读取、更新和删除)操作,并结合模糊查询和Spring MVC的三层架构来构建高效的数据处理系统。axios是一款广泛应用于JavaScript开发中的HTTP客户端,它使得与...

    Spring_Case.7z

    【Spring_Case.7z】是一个包含基于SSM(Spring、Struts2和MyBatis)框架开发的简单Web项目的压缩包。这个项目是用Java语言编写的,使用了JDK1.8作为运行环境,Maven3.6作为构建工具,Tomcat8.5作为应用服务器,以及...

    struts2 hibernate spring case

    **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,主要用于控制应用程序的流程。它的主要特点是强大的动作调度、丰富的拦截器机制和强大的国际化支持。Struts2通过Action类来处理HTTP请求...

    SSH整合Case

    SSH整合Case是一个经典的Java Web开发框架整合实例,它结合了Struts2、Spring和Hibernate这三个强大的开源框架。这个案例展示了如何在同一个项目中有效地利用它们的功能,以实现更高效、可维护的后端架构。 首先,...

Global site tag (gtag.js) - Google Analytics