分享以下没有xml配置文件的springmvc,并实现登陆功能。
config包下
jdbc.properties
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.className=oracle.jdbc.driver.OracleDriver
jdbc.userName=######
jdbc.password=######
DataSourceConfig.java
/**
* @Configuration 声明当前类是一个配置类(代替xml文件的类)
* @ComponentScan("com.qcj") 配置扫描位置
* @PropertySource(value={"classpath:jdbc.properties"},ignoreResourceNotFound=true)
* 通过注解读取属性文件,这样就可以忽略源文件找不到的情况
*/
@Configuration
@ComponentScan("com.qcj")
@PropertySource(value={"classpath:jdbc.properties"},ignoreResourceNotFound=true)
public class DataSourceConfig {
@Resource
private Environment env; //引入环境系统,配合@PropertySource注解,可以直接获取相关数据
@Resource(name="dataSource")
public DataSource dataSource;
/**
* 声明该方法将返回一个Bean,Bean将放入容器中备用
* Druid是阿里巴巴数据缓冲池
*/
@Bean(name = "dataSource")
public DruidDataSource getDruidDataSource() {
try {
String className=env.getProperty("jdbc.className");
String connString=env.getProperty("jdbc.url");
String userName=env.getProperty("jdbc.userName");
String password=env.getProperty("jdbc.password");
DruidDataSource ds = new DruidDataSource();
ds.setUrl(connString);
ds.setDriverClassName(className);
ds.setUsername(userName);
ds.setPassword(password);
System.out.println("datasource:"+className);
ds.setMaxActive(6);
return ds;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Bean(name = "jdbcTemplate")
public JdbcTemplate getJdbcTemplate() {
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
}
MvcConfig.java
@Configuration
@EnableWebMvc //开启MVC注解功能
public class MvcConfig extends WebMvcConfigurerAdapter {
/**
* 静态资源映射
* addResourceHandler()方法指定url,该url后连接静态文件,对应着addResourceLoaction()方法目录所对应的静态文件
*/
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**").addResourceLocations("/css/");
registry.addResourceHandler("/img/**").addResourceLocations("/img/");
registry.addResourceHandler("/images/**").addResourceLocations("/images/");
registry.addResourceHandler("/rev-slider/**").addResourceLocations("/rev-slider/");
registry.addResourceHandler("/js/**").addResourceLocations("/js/");
registry.addResourceHandler("/fonts/**").addResourceLocations("/fonts/");
registry.addResourceHandler("/font/**").addResourceLocations("/font/");
registry.addResourceHandler("/*.html").addResourceLocations("/view/");
}
@Bean //声明视图解析器,在返回逻辑视图名后拼装物理视图名
public UrlBasedViewResolver getViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
resolver.setContentType("text/html;charset=utf-8");
System.out.println("视图解析器配完成");
return resolver;
}
}
WebInitializer.java
实现WebApplicationinitializer的类都可以在web应用程序启动时被加载
public class WebInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext servletContext) throws ServletException {
FilterRegistration.Dynamic encodingfilter=servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class);
encodingfilter.setInitParameter("encoding","UTF-8");
encodingfilter.addMappingForUrlPatterns(null, false, "/*");
//该类可以注册配置文件?
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
//注册DataSourceConfig类和MvcConfig类?
ctx.register(DataSourceConfig.class,MvcConfig.class);
ctx.setServletContext(servletContext);
//创建一个Servlet
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
controller层
@Controller
public class managerUserController {
@Resource
userService userService;
@RequestMapping("login")
public ModelAndView login(HttpServletRequest request, HttpServletResponse response, Emp user) {
ModelAndView mv = new ModelAndView();
Emp user1 = new Emp();
user1=userService.checkuser(user);
if (user1 != null) {
mv.setViewName("register");
return mv;
} else {
System.out.println("chucuo");
String err="出错";
mv.addObject("err",err);
mv.setViewName("err");
return mv;
}
}
}
service层
@Service("userService")
public class userServiceImpl implements userService{
@Resource
userDao userDao;
@Override
public Emp checkuser(Emp user) {
return userDao.checkUserNameAndPassword(user);
}
}
dao层
@Repository("userDao")
public class userDaoImpl implements userDao{
@Resource
JdbcTemplate jdbcTemplate;
@Override
public Emp checkUserNameAndPassword(Emp user) {
System.out.println(user.getUsername()+""+user.getUserpassword());
String sql="select * from Emp where username=? and userpassword=?";
List<Emp> list=jdbcTemplate.query(sql,new Object[]{user.getUsername(),user.getUserpassword()},((RowMapper<Emp>)(rs,index)->
new Emp(rs.getInt(1),rs.getString(2),rs.getString(3))
));
return null==list||list.size()==0?null:list.get(0);
}
}
实体类
package com.qcj.entity;
public class Emp {
private int userId;
private String username;
private String userpassword;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
@Override
public String toString() {
return "Emp [userId=" + userId + ", username=" + username + ", userpassword=" + userpassword + "]";
}
public Emp(int userId, String username, String userpassword) {
super();
this.userId = userId;
this.username = username;
this.userpassword = userpassword;
}
public Emp() {
super();
}
}
jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="http://cdn.amazeui.org/amazeui/2.4.2/css/amazeui.min.css" />
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.amazeui.org/amazeui/2.4.2/js/amazeui.min.js"></script>
</head>
<body>
<div>
<form class="am-form tpl-form-line-form" action="login" method="post">
<div class="am-form-group">
<input type="text" class="tpl-form-input" id="user-name" name="username" placeholder="请输入账号">
</div>
<div class="am-form-group">
<input type="password" class="tpl-form-input" id="user-name" name="userpassword" placeholder="请输入密码">
</div>
<div class="am-form-group tpl-login-remember-me">
<input id="remember-me" type="checkbox">
<label for="remember-me">
记住密码
</label>
</div>
<div class="am-form-group">
<button type="submit" class="am-btn am-btn-primary am-btn-block tpl-btn-bg-color-success tpl-login-btn">提交</button>
<a href="register.jsp" class="am-btn am-btn-primary am-btn-block tpl-btn-bg-color-success tpl-login-btn">注册</a>
</div>
</form>
</div>
</body>
</html>
以上就是无xml的springmvc实现登陆的过程。