加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

ssm框架整合+Ajax异步验证

发布时间:2020-12-15 07:10:17 所属栏目:Java 来源:网络整理
导读:SSM框架是目前企业比较常用的框架之一,它的灵活性、安全性相对于SSH有一定的优势。说到这,谈谈SSM和SSH的不同点,这也是企业常考初级程序员的面试题之一。说到这两套框架的不同,主要是持久层框架Hibernate和MyBatis的不同和控制层框架SpringMVC和Struts2的

SSM框架是目前企业比较常用的框架之一,它的灵活性、安全性相对于SSH有一定的优势。说到这,谈谈SSM和SSH的不同点,这也是企业常考初级程序员的面试题之一。说到这两套框架的不同,主要是持久层框架Hibernate和MyBatis的不同和控制层框架SpringMVC和Struts2的不同。

?

Hibernate和MyBatis的不同主要体现这么几点:

1.自动化和半自动化:Hibernate的SQL语句自动生成不需要程序员编写,而MyBatis需要编写。

2.学习上:Hibernate入门比较难,而MyBatis入门非常容易。

3.可移植性:Hibernate可移植性好,对应不同的数据库通过改变方言可以直接用,而MyBatis可移植性差,对应不同的数据库需要书写不同的SQL语句

4.关系维护上:Hibernate映射关系复杂,而MyBatis相对简单。

5.缓存:Hibernate有更好的二级缓存,可以使用第三方缓存,而MyBatis本身缓存就不好。

?

?

SpringMVC和Struts2的不同点如下:

1.入口不同:SpringMVC的入口是Servlet,Struts的入口是Filter。

2.性能上:spring3?mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3?mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter?getter方法把request中的数据注入;struts2实际上是通 setter?getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。??

3.拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

4.?设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

5.SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

6.Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。

第一步:导包(这一步只要成功,可以说成功了80%)

aopalliance.jar
aspectjweaver-1.5.4.jar
commons-fileupload-1.3.1.jar
commons-io-2.4.jar
commons-logging-1.1.3.jar
fastjson-1.2.13.jar
jstl-1.2.jar
mail.jar
mybatis-3.3.1.jar
mybatis-spring-1.2.4.jar
mysql-connector-java-5.1.26-bin.jar
spring-aop-4.2.3.RELEASE.jar
spring-aspects-4.2.3.RELEASE.jar
spring-beans-4.2.3.RELEASE.jar
spring-context-4.2.3.RELEASE.jar
spring-context-support-4.2.3.RELEASE.jar
spring-core-4.2.3.RELEASE.jar
spring-expression-4.2.3.RELEASE.jar
spring-instrument-4.2.3.RELEASE.jar
spring-instrument-tomcat-4.2.3.RELEASE.jar
spring-jdbc-4.2.3.RELEASE.jar
spring-jms-4.2.3.RELEASE.jar
spring-messaging-4.2.3.RELEASE.jar
spring-orm-4.2.3.RELEASE.jar
spring-oxm-4.2.3.RELEASE.jar
spring-test-4.2.3.RELEASE.jar
spring-tx-4.2.3.RELEASE.jar
spring-web-4.2.3.RELEASE.jar
spring-webmvc-4.2.3.RELEASE.jar
spring-webmvc-portlet-4.2.3.RELEASE.jar
spring-websocket-4.2.3.RELEASE.jar

?

第二步:写Spring主配置文件以及MyBatis主配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 起别名 -->
<typeAliases>
<package name="com.blog.entity"/>
</typeAliases>
  
</configuration>

?

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd ">
<!-- 自动扫描注解 -->
 context:component-scan base-package="com.blog.service"></context:component-scan> 

 配置连接池 -->
bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource"property name="driverClassName" value="com.mysql.jdbc.Driver"property="url"="jdbc:mysql://localhost:3306/blog_002"="username"="root"="password"="1234"</bean>

 配置mybatis工厂 ="sqlSessionFactoryBean"="org.mybatis.spring.SqlSessionFactoryBean" ref="dataSource"="configLocation"="classpath:mybatis-config.xml" 注解事务 ="transactionManager"="org.springframework.jdbc.datasource.DataSourceTransactionManager" 开启注解事务 tx:annotation-driven transaction-manager="transactionManager"/>

 动态扫描 class="org.mybatis.spring.mapper.MapperScannerConfigurer"="basePackage"="com.blog.mapper"beans>

?

第三步:创建实体类

package com.blog.entity;

public class User {

	
	private Integer Id;
	private String email;
	private String userName;
	private String password;
	private Integer power;
	public Integer getId() {
		return Id;
	}
	public void setId(Integer id) {
		Id = id;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	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;
	}
	public Integer getPower() {
		return power;
	}
	public void setPower(Integer power) {
		this.power = power;
	}

	
	
}

?第四步:创建接口以及SQL映射文件(通过动态代理的方式绑定)

package com.blog.mapper;

import org.apache.ibatis.annotations.Param;

import com.blog.entity.User;

public interface UserMapper {

	
	User Login(String email);
	
	User Login2(@Param("email") String email,@Param("password") String password);
}

?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.blog.mapper.UserMapper">
 
 <select id="Login" parameterType="String" resultType="User">
 select * from b_user where email=#{email}
 </select>
 
  <select id="Login2" resultMap="logins">
 select * from b_user where email=#{email} and password=#{password}
 </select>
 <resultMap type="User" id="logins">
 	 <id column="Id" property="Id"/>
	 <result column="email" property="email"/>
	<result column="password" property="password"/>
 </resultMap>
 
 
 </mapper>

第五步:创建Service接口以及实现类

package com.blog.service;

import com.blog.entity.User;

public interface UserService {

	
	User Login(String email);

	User Login2(String email,String password);
	
	
}

?

package com.blog.service.impl;

import javax.annotation.Resource;

 org.springframework.stereotype.Service;

 com.blog.entity.User;
 com.blog.mapper.UserMapper;
 com.blog.service.UserService;

@Service
public class UserServiceImpl implements UserService{

    @Resource
    private UserMapper userMapper;
    
    
    @Override
    public User Login(String email) {
        // TODO Auto-generated method stub
        return userMapper.Login(email);
    }


    @Override
     User Login2(String email,String password) {
         userMapper.Login2(email,password);
    }

    
    
}

第六步:写测试类测试上述方法

 com.blog.test;

 org.junit.Test;
 org.junit.runner.RunWith;
 org.springframework.test.context.ContextConfiguration;
 org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

 com.blog.mapper.UserMapper;

@RunWith(SpringJUnit4ClassRunner.)
@ContextConfiguration("classpath:applicationContext.xml")
 testMapper {

    @Resource
     UserMapper userMapper;
    
    
    
    @Test
    void testName() throws Exception {
        
        User user=userMapper.Login("1933108196@qq.com");
        System.out.println(user);
         
        
        
        
    }
    
    @Test
    void testName2()  Exception {
        
        User user=userMapper.Login2("1933108196@qq.com","kangri123");
        System.out.println(user.getUserName());
        
        
        
        
    }
    
}

第七步:测试成功后,开始设置web.xml

web-app ="http://java.sun.com/xml/ns/javaee"="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  display-name>Demo_Model>
  
  全局配置 -->  
  context-paramparam-name>contextConfigLocationparam-value>classpath:applicationContext.xml>

   该监听器主要作用是随tomcat的启动,而加载context中的全局配置文件 listenerlistener-class>org.springframework.web.context.ContextLoaderListener 该过滤器主要作用是处理字符乱码,可拦截所有请求,处理所有乱码filter>
 filter-name>CharacterEncodingfilter-class>org.springframework.web.filter.CharacterEncodingFilterinit-param>encoding>UTF-8>
 
 filter-mappingurl-pattern>/*>
 
  
  
  servletservlet-name>springmvcservlet-class>org.springframework.web.servlet.DispatcherServlet>classpath:springmvc.xmlservlet-mapping>*.do 
  *.do拦截所有带do的请求,对静态资源放行
  / 拦截所有带.jsp的请求,同时对静态资源拦截
  /* 拦截所有
   -->
  >
  
  
  
  
  welcome-file-list>
    welcome-file>Login.jspweb-app>

第八步:配置springmvc.xml(与Spring框架无缝整合)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd ">
<!--扫描Controller层 -->
<context:component-scan base-package="com.blog.controller"></context:component-scan>

<!-- 开启注解 -->
<mvc:annotation-driven/>

<!-- 配置视图解析器 --> 	    
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

</beans>

配置完毕后记得添加Controller 相关的类

package com.blog.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.blog.entity.User;
import com.blog.service.UserService;

@Controller
public class UserController {

	@Resource
	private UserService userService;
	
	@RequestMapping(value="emailCheck2.do",method=RequestMethod.POST)
	public void emailCheck2(String email,HttpServletResponse response,HttpServletRequest request,HttpSession session,Model model) throws IOException{
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out=response.getWriter();

		User user=userService.Login(email);
		if(user!=null){
			out.println("邮箱已经存在");
		}else{
			out.println("邮箱可以使用");
		}
		
		out.flush();
		out.close();
		
	}
	
	
	@RequestMapping(value="emailCheck.do",method=RequestMethod.POST)
	public void emailCheck(String email,Model model) throws IOException{
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out=response.getWriter();

		User user=userService.Login(email);
		if(user!=null){
			out.println("邮箱正确");
		}else{
			out.println("邮箱错误");
		}
		
		out.flush();
		out.close();
		
	}
	
	@RequestMapping(value="passCheck.do",String password,Model model) throws IOException{
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out=response.getWriter();

		User user=userService.Login2(email,password);
		if(user!=null){
			out.println("密码正确");
	        
		}else{
			out.println("密码错误");
		}
		
		out.flush();
		out.close();
		
	}
	
     @RequestMapping(value="LoginCheck.do",method=RequestMethod.POST)
	 public String LoginCheck(String email,Model model){
    	 User user=userService.Login2(email,password);
    	 if(user==null){
    		 request.setAttribute("error","用户名或密码不能为空");
    		 return "Login";
    	 }else{
    		 
    		 model.addAttribute("user",user);
    		 return "index";
    	 }
    	 
     }
	
	
}

?

?

第十步:开始启动tomcat,如果控制台无报错信息,说明配置整合成功,反之失败,所以整合过程中一定要仔细

十月 28,2017 12:06:40 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Demo_Model' did not find a matching property.
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/7.0.82
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Sep 29 2017 12:23:15 UTC
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         7.0.82.0 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 8 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            6.2 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             D:jdk1.7.0_51jre
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.7.0_51-b13
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82wtpwebapps
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82endorsed
十月 28,1)"> 上午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十月 28,1)"> 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:jdk1.7.0_51bin;C:WINDOWSSunJavabin;C:WINDOWSsystem32;C:WINDOWS;D:/jdk1.7.0_51/bin/../jre/bin/server;D:/jdk1.7.0_51/bin/../jre/bin;D:/jdk1.7.0_51/bin/../jre/lib/amd64;D:jdk1.7.0_51bin;D:Mavenapache-maven-3.3.9bin;C:Program FilesGitcmd;C:Program Files (x86)ATI TechnologiesATI.ACECore-Static;D:Program FilesMySQLMySQL Server 5.7bin;C:Program FilesVisualSVN Serverbin;C:Program FilesTortoiseSVNbin;D:Program Filesmongodb-win32-x86_64-2.4.3bin;C:UserstracholarAppDataRoamingcabalbin;C:UserstracholarAppDataRoamingnpm;D:Program Filesuserbin;D:wamp64binphpphp5.6.16;D:texlive2015binwin32;D:Program Fileseclipse;;.
十月 28,1)"> 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
十月 28,1)"> 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009" 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1592 ms
十月 28,1)"> 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十月 28,2017 12:06:41 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.82 上午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十月 28,1)"> 上午 org.apache.catalina.core.ApplicationContext log
信息: No Spring WebApplicationInitializer types detected on classpath
十月 28,1)"> 上午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
十月 28,1)"> 上午 org.springframework.web.context.ContextLoader initWebApplicationContext
信息: Root WebApplicationContext: initialization started
十月 28,1)"> 上午 org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
信息: Refreshing Root WebApplicationContext: startup date [Sat Oct 28 00:06:46 CST 2017]; root of context hierarchy
十月 28,1)"> 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from  path resource [applicationContext.xml]
十月 28,2017 12:06:49 上午 org.springframework.web.context.ContextLoader initWebApplicationContext
信息: Root WebApplicationContext: initialization completed in 2875 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappsdocs
十月 28,1)"> 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappsdocs has finished in 234webappsexamples
十月 28,2017 12:06:51 上午 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
十月 28,1)"> 上午 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
十月 28,1)"> 上午 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache','org.apache.jasper.compiler.TldLocationsCache@a8e6df5')
十月 28,1)"> 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappsexamples has finished in 1,568 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappshost-manager
十月 28,1)"> 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappshost-manager has finished in 421webappsmanager
十月 28,1)"> 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappsmanager has finished in 141webappsROOT
十月 28,1)"> 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:Program Filesapache-tomcat-7.0.82-windows-x64apache-tomcat-7.0.82webappsROOT has finished in 94 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080" 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009" 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 11060 ms

?

?接下来开始写登录页面做异步验证,在此之前AJax所需的jQuery插件一定要记得导,导入后,写个alert弹框测试一下,以保证在Ajax和JQuery交互的过程中不会因为插件的问题而报错

<%@ page language="java contentTypetext/html; charset=UTF-8
    pageEncodingUTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"htmlheadmeta http-equiv="Content-Type" content="text/html; charset=UTF-8"title>登录script type="text/javascript" src="js/jquery-1.12.4.min.js"script>
    function m1() {

        $(document).ready(() {

            var email  $(#email).val();

            if (email == null ||"") {
                $(#nameDiv1).html(邮箱不能为空);

            } else  (email.indexOf(@) -1邮箱格式不正确,必须包含@.);
            } else {
                $.post(${pageContext.request.contextPath}/emailCheck.do,{
                    email : email
                },(data) {
                    $().html(data);
                },1)">text);

            }

        });

    }
    
     m2(){
        $(document).ready((){
             email$().val();
             password#password(password==nullpassword){
                $(#nameDiv2密码不能为空);
            }(password.length<6密码长度不能小于六位>18密码长度已经超过18位,不符合给定要求{
                $.post(
                ${pageContext.request.contextPath}/passCheck.do:email,1)">:password},1)">(data){
                    $(                
                );
                
            }
            
            
            
        });
    }
>


bodydiv align="center">
        form action="LoginCheck.do" method="post">
           h2 >${error}h2>
            table >
                tr>
                    td>Email:input ="text" name="email" onblur="m1()"
                        style="width: 200px;" /></><span ="nameDiv1" style="color: red; font-size: 15px;"span>Password:="m2()"="nameDiv2"="submit"="Login" >
                
                tableform>

    div>
<%@ 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>
${user.userName}
</body>
</html>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读