Spring登录页面(用配置+注解方式)

Spring登录页面(用配置+注解方式)

1. spring简介:

 【1】什么是Spring?

*Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入。

   *Spring提供的IOC和AOP应用,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级。

   *Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发。

 【2】为什么要用Spring?

   Spring的本质是管理软件中的对象,如何创建对象和维护对象之间的关系。

 【3】springMVC简介

       Spring Web+ MVC 是spring框架非常重要的功能模块。实现了mvc结构,便于简单,快速开发mvc结构的web程序。Spring weg mvc 提供的api封装了web开发中常用的功能。简化了web过程。

 【4】springJDBC简介:

       Spring框架提出了jdbcTemplate类作为数据库访问类,该类是Spring框架数据抽象层的概念,其他更高层的抽象类也是构建于jdbcTemplate类之上。JdbcTemplate类是SpringJDBC数据库操作的核心。

       Spring框架提供的jdbc支持主要由4个包组成,分别是core(核心包),object(对象包),dataSource(数据源包)和suppor(支持包)

       JdbcTemplate类继承自抽象类JdbcAccessor,同时实现了jdbcOperations接口。

       DataSource:获取数据库连接

SQLExceptionTranslator:这个接口扶着对SQLExcetion进行转译工作。

2.spring运行流程:

 

3.整个项目图:


使用到的相关知识:

SpringJDBC,SpringMVC,Spring配置,spring属性注入

设计思路

1.导入jar包

2.设计数据库

3.设计jsp页面

4.使用springJDBC,实现entity->dao->service业务逻辑。

5.使用springMVC实现jsp页面切换操作。

源码如下:

1.数据库设计:

create table user (

 id int primary keyauto_increment,

 username varchar(20) unique,

 password varchar(18)

);

insert into user(username,password) values('ww','123'); 

select * from user where username='ww' and password='123';

2.login.jsp

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">

<html>

  <head>

    <title>登录</title>

       <metahttp-equiv="pragma" content="no-cache">

       <metahttp-equiv="cache-control" content="no-cache">

  </head>

  <body>

  <formaction="login.form" method="post">

  <span>用户名:</span><input type="text" name="username"><br> 

  <span>密码:</span><inputtype="password" name="password"><br>

  <inputtype="submit">

  </form>

  </body>

</html>

 
3.success.jsp

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">

<html>

  <head>

    <title>登录成功!</title>

       <meta http-equiv="pragma"content="no-cache">

       <metahttp-equiv="cache-control" content="no-cache">

  </head>

  <body>

    欢迎你,${username }

  </body>

</html>

4.error.jsp

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">

<html>

  <head>

    <title>出错!!</title>

       <metahttp-equiv="pragma" content="no-cache">

       <metahttp-equiv="cache-control" content="no-cache">

  </head>

  <body>

    出现错误!

  </body>

</html>

5.servletweb.xml配置:

<?xmlversion="1.0" encoding="UTF-8"?>

<web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"version="2.5">

  <welcome-file-list>

   <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

    <filter>

   <filter-name>encodingFilter</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <init-param>

     <param-name>encoding</param-name>

     <param-value>UTF-8</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>encodingFilter</filter-name>

     <url-pattern>/*</url-pattern>

  </filter-mapping>

  <servlet>

     <servlet-name>springmvc</servlet-name>

      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

      <init-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>classpath:spring-mvc.xml</param-value>

      </init-param>

     <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>springmvc</servlet-name>

    <url-pattern>*.form</url-pattern>

  </servlet-mapping>

  

</web-app>

6.spring-mvc.xml设计:

 <?xml version="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util" 

       xmlns:jee="http://www.springframework.org/schema/jee"xmlns:tx="http://www.springframework.org/schema/tx"

       xmlns:jpa="http://www.springframework.org/schema/data/jpa"xmlns:mvc="http://www.springframework.org/schema/mvc"

       xsi:schemaLocation="

              http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd

              http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd

              http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util.xsd

              http://www.springframework.org/schema/jeehttp://www.springframework.org/schema/jee/spring-jee.xsd

              http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd

              http://www.springframework.org/schema/data/jpahttp://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd

              http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd">

       <!--数据连接操作  -->

      <!--数据源 -->

 <bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <!--数据库驱动  -->

    <propertyname="driverClassName" value="com.mysql.jdbc.Driver"/>

    <!-- 连接数据库的URL-->                 

      <propertyname="url" value="jdbc:mysql://127.0.0.1/test"/>

      <!--连接数据库的用户名 -->

      <propertyname="username" value="root"></property>

      <!--连接数据库的密码 -->

      <propertyname="password" value="root"></property>

 </bean>

 <!-- 配置jdbc模板-->

 <bean id="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate">

   <property name="dataSource"ref="dataSource"></property>

 </bean>

 <!-- 开启自动扫描组件-->

  <context:component-scanbase-package="*"/>

  <!--开启mvc注解映射-->

  <mvc:annotation-driven/>

   <!-- 定义视图解析器-->

<beanid="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

   <property name="prefix"value="/" />

    <property name="suffix"value=".jsp"></property>

</bean>

</beans>

7.entity->User.java

package entity;

public class User {

       private int id;

       private String username;

       private String password;

       public int getId() {

              return id;

       }

       public void setId(int id) {

              this.id = id;

       }

       public String getUsername() {

              return username;

       }

       public void setUsername(String username) {

              this.username = username;

       }

       public String getPassword() {

              return password;

       }

       public void setPassword(String password) {

              this.password = password;

       }

       @Override

       public String toString() {

              return "User [id=" + id + ",username=" + username + ", password="

                            + password + "]";

       }

}

8.dao->UserDao.java

 package dao;

import entity.User;

public interface UserDao {

       public User getUser(String username,String password);//查找这个用户

}

9.dao.impl->UserDaoImpl.java

 package dao.impl;

 

importjavax.annotation.Resource;

 

importorg.springframework.jdbc.core.JdbcTemplate;

importorg.springframework.jdbc.core.RowMapper;

importorg.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;

 

importorg.springframework.stereotype.Repository;

 

import dao.UserDao;

import entity.User;

@Repository("userDao")

public class UserDaoImplimplements UserDao{

       @Resource(name="jdbcTemplate")

    private JdbcTemplate jdbcTemplate;

       public User getUser(String username, String password) {

              String sql="select * from user where username=?and password =?";

              RowMapper<User>rowMapper=ParameterizedBeanPropertyRowMapper.newInstance(User.class);

              try {

                     returnjdbcTemplate.queryForObject(sql,rowMapper,username,password);

              } catch (Exception e) {    //这里这个处理方法真的很low....

                     return null;

              }

               

       }

   

}

10.service->UserService.java

 package service;

 

import entity.User;

 

public interface UserService{

       public User getUser(String username,String password);//查找这个用户

}

12.controller->Login.java

 package service.impl;

 

import javax.annotation.Resource;

 

importorg.springframework.stereotype.Service;

 

import service.UserService;

import dao.UserDao;

import entity.User;

@Service("userService")

public class UserServiceImplimplements UserService{

       @Resource(name="userDao")

       private UserDao userDao;

       public User getUser(String username,String password) {

              return userDao.getUser(username, password);

       }

}

 

总结:这个示例其实对spring算是比较入门的内容了。MVC设计模式和平时的servlet写法是一致的。唯一不一样的就是把所有的new的地方写成了配置形式

 

 

微笑本内容由安康学院”雨季”原创!