多模块之maven+springmvc+spring+hibernate+oracle

一、数据准备

-- Create table
create table T_USERS
(
  id       VARCHAR2(128) not null,
  username VARCHAR2(128),
  password VARCHAR2(128)
);
-- Create/Recreate primary, unique and foreign key constraints 
alter table T_USERS
  add constraint T_USERS primary key (ID);

插入数据

insert into t_users(id,username,password) values('1234','admin', md5('admin'));
insert into t_users(id,username,password) values('9876','user', md5('user'));

oracle–Md5加密函数

CREATE OR REPLACE FUNCTION MD5(

passwd IN VARCHAR2)

RETURN VARCHAR2

IS

retval varchar2(32);

BEGIN

retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;

RETURN retval;

END;

二、项目结构图

在这里插入图片描述

1、新建虚拟工作空间,即java working set

在这里插入图片描述
填写working set name 直接点击finish
在这里插入图片描述
在这里插入图片描述
然后top Level elements 展示方式选择为working wet ,接着select working set选择相应的工作空间进行显示。

2、新建maven项目(注:所有的groupId已删除)

(1)新建父项目

在这里插入图片描述
接着直接点击next,然后选择
在这里插入图片描述
next,填写自己的项目的两个id,完成。
注:src目录可删除

(1)新建子项目

在父项目上右键新建
在这里插入图片描述
next-填写模块名-next-选quickstart----完成。

照这样新建4个模块包,web包应该选择webapp。

三、代码

1导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com</groupId>
  <artifactId>test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <distributionManagement>
    <site>
      <id>website</id>
      <url>scp://webhost.company.com/www/website</url>
    </site>
  </distributionManagement>

  <modules>
    <module>ssh-entity</module>
    <module>ssh-utils</module>
    <module>ssh-dao</module>
    <module>ssh-service</module>
    <module>ssh-web</module>
  </modules>
  
  <!-- 属性 -->
  <properties>
    <spring.version>4.2.4.RELEASE</spring.version>
    <hibernate.version>5.0.7.Final</hibernate.version>
  </properties>

  <!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->
  <dependencyManagement>
    <dependencies>
    	<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
      </dependency>
      <!-- 单元测试 -->
	  <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    
    <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.6</version>
        </dependency>
        <dependency>
		    <groupId>commons-httpclient</groupId>
		    <artifactId>commons-httpclient</artifactId>
		    <version>3.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.directory.studio</groupId>
		    <artifactId>org.apache.commons.io</artifactId>
		    <version>2.1</version>
		</dependency>
    <!-- web3.0 -->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.2.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    
    <!-- spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
    </dependency>
    
    <!-- hibernate -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
    </dependency>

    <!-- mysql数据库驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>
      <scope>runtime</scope>
    </dependency>
    
    <!-- oracle数据库的驱动包 start -->
    <dependency>
       <groupId>com.oracle</groupId>
       <artifactId>ojdbc6</artifactId>
       <version>12.1.0.1</version>
    </dependency>
    
    <!-- c3p0 -->
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>

    <!-- 日志 -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.2</version>
    </dependency>
    
  </dependencies>

  <build>
    <plugins>
      <!-- 配置JDK版本 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <!-- Maven的Tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <!-- 可额外配置路径、端口等信息,要求使用tomcat7:run运行 -->
          <port>8888</port>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
</project>

2、在entity包新建user实体类

@Entity
@Table(name = "t_users", catalog = "maven")
public class User implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	
	private String id;
	private String username;
	private String password;
	
	public User() {
	}
	
	public User(String username, String password) {
		this.username = username;
		this.password = password;
	}
	
	@Id
	@Column(name = "id", unique = true, nullable = false)
	public String getId() {
		return this.id;
	}
	
	public void setId(String id) {
		this.id = id;
	}
	
	@Column(name = "username", unique = true, nullable = false, length = 30)
	public String getUsername() {
		return this.username;
	}
	
	public void setUsername(String username) {
		this.username = username;
	}
	
	@Column(name = "password", nullable = false, length = 50)
	public String getPassword() {
		return this.password;
	}
	
	public void setPassword(String password) {
		this.password = password;
	}

}

3、搭建Utils-MD5公共包

public class MD5Utils {
/**

  • 使用md5的算法进行加密
    */
    public static String md5(String plainText) {
    byte[] secretBytes = null;
    try {
    secretBytes = MessageDigest.getInstance(“md5”).digest(
    plainText.getBytes());
    } catch (NoSuchAlgorithmException e) {
    throw new RuntimeException(“没有md5这个算法!”);
    }
    String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
    // 如果生成数字未满32位,需要前面补0
    for (int i = 0; i < 32 - md5code.length(); i++) {
    md5code = “0” + md5code;
    }
    return md5code.toUpperCase();
    }

    public static void main(String[] args) {
    System.out.println(md5(“123”));
    }
    }

4.构建dao层

(0)pom.xml

 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
     </dependency>
    <dependency>
      <groupId></groupId>
      <artifactId>ssh-entity</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId></groupId>
      <artifactId>ssh-utils</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

(1)basedao

public interface BaseDao<T> {

	void save(T entity);
	
	void delete(T entity);
	
	void deleteById(Serializable id);
	
	void update(T entity);
	
	T findById(Serializable id);
	
	List<T> findAll();
}

(2)basedaoimpl

public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {

	private Class<T> entityClass;
	
	@SuppressWarnings("unchecked")
	public BaseDaoImpl() {
		// 获取子类对象的父类类型
		ParameterizedType superClass = (ParameterizedType) this.getClass().getGenericSuperclass();
		// 获得在父类类型上声明的反省数组
		Type[] genericTypes = superClass.getActualTypeArguments();
		// 第一个泛型即为实体类型
		entityClass = (Class<T>) genericTypes[0];
	}
	
	@Override
	public void save(T entity) {
		getHibernateTemplate().save(entity);
	}
	
	@Override
	public void delete(T entity) {
		getHibernateTemplate().delete(entity);
	}
	
	@Override
	public void deleteById(Serializable id) {
		T entity = getHibernateTemplate().load(entityClass, id);
		getHibernateTemplate().delete(entity);
	}
	
	@Override
	public void update(T entity) {
		getHibernateTemplate().update(entity);
	}
	
	@Override
	public T findById(Serializable id) {
		return getHibernateTemplate().get(entityClass, id);
	}
	
	@Override
	public List<T> findAll() {
		return getHibernateTemplate().loadAll(entityClass);
	}
	
	/**
	* HibernateDao接口在使用前必须注入SessionFactory
	* 
	* @param sessionFactory
	*/
	@Autowired
	public void setSF(SessionFactory sessionFactory) {
		super.setSessionFactory(sessionFactory);
	}
}

(3)userdao

public interface UserDao extends BaseDao<User>{
	User login(String username, String password);
}

(4)userdaoimpl

@Repository("userDao")
public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao {

	@Override
	@SuppressWarnings("unchecked")
	public User login(String username, String password) {
		List<User> user = (List<User>) getHibernateTemplate().find(
		"from User u where u.username=? and u.password=?", username,password);
		if (user == null || user.size() < 1) {
			return null;
		} else {
			return user.get(0);
		}
	}
}

(5)applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

	<!-- 开启扫描注解Bean -->
	<context:component-scan base-package="org.ssh"/>
	
	<context:property-placeholder location="classpath:db.properties"/>
	
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driverClass}"/>
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
		<property name="user" value="${jdbc.user}"/>
		<property name="password" value = "${jdbc.password}"/>
	</bean>
	
	<!-- 加载配置方案2:在spring配置中放置hibernate配置信息 -->
	<bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
		<!-- 将连接池注入到sessionFactory, hibernate会通过连接池获得连接 -->
		<property name="dataSource" ref="dataSource"></property>
		<!-- 配置hibernate基本信息 -->
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<!-- <prop key="hibernate.hbm2ddl.auto">update</prop> -->
			</props>
		</property>
		<!-- 引入orm元数据,指定orm元数据所在的包路径,spring会自动读取包中的所有配置 -->
		<property name="packagesToScan" value="org.ssh.entity"></property>
	</bean>
</beans>

(6) db.properties

jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.jdbcUrl=jdbc:oracle:thin:@localhost:ORACLEDB
jdbc.user=system
jdbc.password=system

(7) log4j.properties

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=D:\\temp\\mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### fatal error warn info debug debug trace
log4j.rootLogger=debug, stdout
#log4j.logger.org.hibernate=INFO
#log4j.logger.org.hibernate.type=INFO

(8)测试配置 applicationContext-daotest.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
	<bean name="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager" >
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>

	<tx:annotation-driven transaction-manager="transactionManager" /> 
</beans>

(9)UserDaoTest

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-dao.xml",
"classpath:applicationContext-daotest.xml" })
@Transactional
public class UserDaoTest {
	
	@Autowired
	UserDao userDao;

	@Test
	public void testLogin() {
		List<User> users = userDao.findAll();
		System.out.println("=============>>>>>>>>>>"+users.size());
		Assert.assertNotNull(userDao.login("admin", MD5Utils.md5("admin").toUpperCase()));
		Assert.assertNull(userDao.login("admin", MD5Utils.md5("pass").toUpperCase()));
		Assert.assertNotNull(userDao.login("user", MD5Utils.md5("user").toUpperCase()));
		System.out.println(userDao.login("admin", MD5Utils.md5("admin").toUpperCase()));
	}

	@Test
	public void testSave() {
		User u = new User();
		u.setId("55555");
		u.setUsername("dao");
		u.setPassword("dao");
		userDao.save(u);
	}
}

5.构建service层

(1)UserService

public interface UserService {
	
	User login(User user);

	void save(User user);
}

(2)UserServiceImpl

@Service("userService")
@Transactional(readOnly = true)
public class UserServiceImpl implements UserService {
	
	@Autowired
	private UserDao userDao;

	@Override
	public User login(User user) {
		String pass = MD5Utils.md5(user.getPassword());
		return userDao.login(user.getUsername(), pass);
	}

	@Override
	@Transactional(readOnly = false)
	public void save(User user) {
		userDao.save(user);
	}
}

(3)applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

    
    
	<bean name="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager" >
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>

	<tx:annotation-driven transaction-manager="transactionManager" /> 
</beans>

(4)UserServiceTest

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:applicationContext-dao.xml", "classpath:applicationContext-service.xml"})
@Transactional
public class UserServiceTest {
	@Autowired
	UserService userService;

	@Test
	public void testLogin() {

		User u1 = new User();
		u1.setUsername("admin");
		u1.setPassword("admin");
	
		User u2 = new User();
		u2.setUsername("admin");
		u2.setPassword("pass");
	
		User u3 = new User();
		u3.setUsername("user");
		u3.setPassword("user");
	
		Assert.assertNotNull(userService.login(u1));
		Assert.assertNull(userService.login(u2));
		Assert.assertNotNull(userService.login(u3));
	}

	@Test
	public void testSave() {

		User u = new User();
		u.setId("555");
		u.setUsername("service");
		u.setPassword("service");
	
		userService.save(u);

	}
}

6.构建web层

(1)pom.xml

 <dependency>
      <groupId>com.jlb</groupId>
      <artifactId>ssh-service</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
	</dependency>

(2)web.xml

 <!-- 配置spring框架的监听器 -->
	<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	 	<context-param>
		    <param-name>contextConfigLocation</param-name>
		    <param-value>classpath*:applicationContext-*.xml</param-value>
		  </context-param>
	 	<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>
  	</servlet>
  	<servlet-mapping>
	    <servlet-name>springmvc</servlet-name>
	    <url-pattern>/mot/*</url-pattern>
	  </servlet-mapping>
	  <filter>
	    <filter-name>characterEncodingFilter</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>
	    <init-param>
	      <param-name>forceEncoding</param-name>
	      <param-value>true</param-value>
	    </init-param>
	  </filter>
	  <filter-mapping>
	    <filter-name>characterEncodingFilter</filter-name>
	    <url-pattern>/*</url-pattern>
	  </filter-mapping>
    <filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

(3.)spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p"
    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.xsd
                        http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc.xsd">  

    
    <!-- 包下所有类扫描,以完成Bean创建和自动依赖注入的功能 --> 
    <context:component-scan base-package="org.ssh.web.controller" >
    </context:component-scan>
    <context:annotation-config></context:annotation-config>
    <!-- 开启注解 -->
    <mvc:annotation-driven />

    <!-- 激活基于注解的配置 @RequestMapping, @ExceptionHandler,数据绑定 ,@NumberFormat ,  
    @DateTimeFormat ,@Controller ,@Valid ,@RequestBody ,@ResponseBody等  -->  

    <!-- 视图层配置 -->  
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <!--配置JSTL表达式-->  
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/view/"/>  
        <!-- 后缀 -->
        <property name="suffix" value=".jsp"/>  
    </bean> 
</beans>

(4)controller

@Controller
@Scope("prototype")
public class TestController {
	
	
	private UserService userService;

	@Autowired
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	@RequestMapping(value="/index.do")
	public String index(ModelMap model,HttpServletRequest request) {
		return "index";
	}
	
	@RequestMapping(value="/login.do")
	public String login(ModelMap model,HttpServletRequest request) {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		User u = new User();
		u.setUsername(username);
		u.setPassword(password);
		User user = userService.login(u);
		if (user == null) {
			model.put("errorInfo", "用户名密码错误");
			return "login";
		}
		return "success";
	}
}

(5)index.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 http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
	<form action="login.do" method="post">
		<span>用户名:</span><input type="text" name="username"/><br/>
		<span>密 码:</span><input type="password" name="password"/><br/>
		<input type="submit" value="提交"/>
	</form>
</body>
</html>

(6)success.jsp

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值