博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-MVC无xml文件全注解实现简单登录实例
阅读量:2441 次
发布时间:2019-05-10

本文共 3538 字,大约阅读时间需要 11 分钟。

Spring-MVC无xml文件全注解实现简单登录实例

先看三个实现xml配置效果的Java类

import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@ComponentScan(basePackages={
"com.config"})public class RootConfig {}

@Configuration表示这是Java配置类

@ComponentScan指定bean的自动发现机制作用的范围

import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration@EnableWebMvc@ComponentScan("com.controller")public class WebConfig extends WebMvcConfigurerAdapter{	 @Bean	    public ViewResolver viewResolver() {	        InternalResourceViewResolver resolver = new InternalResourceViewResolver();	        resolver.setPrefix("/");	        resolver.setSuffix(".jsp");	        resolver.setExposeContextBeansAsAttributes(true);	        return resolver;	    }	 public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {	        configurer.enable();	    }}

首先,通过@ComponentScan("com.controller")注解指定bean的自动发现机制作用的范围,待会会看到,被@Controller等注解修饰的web的bean将被发现并加载到spring mvc应用容器。这样就不需要在配置类中显式定义任何控制器bean了。

然后,你通过@Bean注解添加一个ViewResolverbean,具体来说是InternalResourceViewResolver。后面我们会专门探讨视图解析器,这里的三个函数的含义依次是:setPrefix()方法用于设置视图路径的前缀;setSuffix()用于设置视图路径的后缀,即如果给定一个逻辑视图名称——"home",则会被解析成"/WEB-INF/views/home.jsp"; setExposeContextBeansAsAttributes(true)使得可以在JSP页面中通过${ }访问容器中的bean。

最后,WebConfig继承了WebMvcConfigurerAdapter类,然后覆盖了其提供的configureDefaultServletHandling()方法,通过调用configer.enable(),DispatcherServlet将会把针对静态资源的请求转交给servlert容器的default servlet处理。

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{	@Override	protected Class
[] getRootConfigClasses() { // TODO Auto-generated method stub return new Class
[] { RootConfig.class }; } @Override protected Class
[] getServletConfigClasses() { // TODO Auto-generated method stub return new Class
[] {WebConfig.class}; } @Override protected String[] getServletMappings() { // TODO Auto-generated method stub return new String[] { "/" }; } }

AbstractAnnotationConfigDispatcherServletInitializer这个类负责配置DispatcherServlet、初始化Spring MVC容器和Spring容器。getRootConfigClasses()方法用于获取Spring应用容器的配置文件,这里我们给定预先定义的RootConfig.class;getServletConfigClasses负责获取Spring MVC应用容器,这里传入预先定义好的WebConfig.class;getServletMappings()方法负责指定需要由DispatcherServlet映射的路径,这里给定的是"/",意思是由DispatcherServlet处理所有向该应用发起的请求。

简单的controller类

import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class Login {		@RequestMapping("/login")	public String login(String name,String password,Model model) {		if (name.equals(password)) {			return "OK";		} else {			return "ERROR";		}			}	}

主页index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page	

转载地址:http://tvcqb.baihongyu.com/

你可能感兴趣的文章
unix下几个有用的小shell脚本(转)
查看>>
QQ病毒的系列处理办法(转)
查看>>
source命令的一个妙用(转)
查看>>
Red Hat并购JBoss 谁将受创?(转)
查看>>
基于IBM大型主机,Linux开辟意大利旅游新天地(转)
查看>>
一些Linux试题(经典!!)(转)
查看>>
优化MySQL数据库性能的八大“妙手”(转)
查看>>
福布斯:Sun下场本可避免 老CEO不听劝(转)
查看>>
根据什么选择一套适合自己的linux系统?(转)
查看>>
戴尔将在法国推出Linux笔记本(转)
查看>>
近9成盗版Office用户称愿投奔开源(转)
查看>>
MySQL购InnoDB不敌甲骨文宣布开放数据引擎(转)
查看>>
银行监会选红旗Linux建设公文传输系统(转)
查看>>
红旗支撑国家外汇管理局网上核销系统(转)
查看>>
网上交易中帐号和密码被盗的解决途径(转)
查看>>
Java线程总结(转)
查看>>
Java学习之类的属性(转)
查看>>
轻松搞定Java内存泄漏(转)
查看>>
Java学习之值传递(转)
查看>>
Java 范型攻略篇(转)
查看>>