日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springMVC结合Mybatis自学搭简单框架

發(fā)布時(shí)間:2023/12/29 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springMVC结合Mybatis自学搭简单框架 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多余的話不說了直接上代碼,如果有不好的地方請(qǐng)多多指教。

項(xiàng)目結(jié)構(gòu)? (所有的名字都是隨便起的,不要介意哈)



1.spring主配置文件ApplicationContext.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:aop="http://www.springframework.org/schema/aop"
??? xmlns:mvc="http://www.springframework.org/schema/mvc"
??? xmlns:tx="http://www.springframework.org/schema/tx"
??? xsi:schemaLocation="http://www.springframework.org/schema/beans
??? http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
??? http://www.springframework.org/schema/context
??? http://www.springframework.org/schema/context/spring-context-2.5.xsd
??? http://www.springframework.org/schema/aop
??? http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
??? http://www.springframework.org/schema/tx
??? http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
??? http://www.springframework.org/schema/mvc
??? http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
??? <bean id="jdbc" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
??? ??<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
??? ??<property name="url" value="jdbc:mysql://localhost:3306/farmingYears?useUnicode=true&amp;characterEncoding=utf8"></property>
??? ??<property name="username" value="root"></property>
??? ??<property name="password" value="samsung1108"></property>
??? </bean>
??? <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
??? ??<property name="dataSource" ref="jdbc"></property>
??? ??<property name="configLocation" value="classpath:conf/mybatis/myBatisConfig.xml"></property>
??? </bean>
???
??? <bean id="loginDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
??? ??<property name="mapperInterface" value="com.farmyears.dao.login.LoginDao"></property>
??? ??<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
??? </bean>
??? <bean id="registUserInfoDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
??? ??<property name="mapperInterface" value="com.farmyears.dao.modifyUserInfo.RegistUserInfoDao"></property>
??? ??<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
??? </bean>
??? <bean id="workNoteDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
??? ??<property name="mapperInterface" value="com.farmyears.dao.note.WorkNoteDao"></property>
??? ??<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
??? </bean>
??? <bean id="dicePlayDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
??? ??<property name="mapperInterface" value="com.farmyears.dao.business.DicePlayDao"></property>
??? ??<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
??? </bean>
??? <bean id="fileUpAndDownDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
??? ??<property name="mapperInterface" value="com.farmyears.dao.file.FileUpAndDownDao"></property>
??? ??<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
??? </bean>
??? <bean id="voteSystemDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
??? ??<property name="mapperInterface" value="com.farmyears.dao.vote.VoteSystemDao"></property>
??? ??<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
??? </bean>
???
??? <!-- 開啟注解 -->
??? <mvc:annotation-driven/>
??? <context:component-scan base-package="com.farmyears">
??? ??<context:include-filter type="regex" expression="com.farmyears.action"/>
??? ??<context:include-filter type="regex" expression="com.farmyears.service"/>
??? ??<context:include-filter type="regex" expression="com.farmyears.dao"/>
??? </context:component-scan>
???
??? <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
??? ??<property name="prefix" value="/"></property>
??? ??<property name="suffix" value=".jsp"></property>
??? </bean>
</beans>

2.Mybatis主配置文件? MyBatisConfig.xml

<?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>
??<settings>
???<setting name="mapUnderscoreToCamelCase" value="true" />
??</settings>
??<typeAliases>
???<typeAlias type="com.farmyears.vo.UserVO" alias="userVO"/>
???<typeAlias type="com.farmyears.vo.ChatUserVO" alias="chatUserVO"/>
???<typeAlias type="com.farmyears.vo.FileInfoVO" alias="fileInfoVO"/>
???<typeAlias type="com.farmyears.vo.VoteVO" alias="voteVO"/>
?</typeAliases>
??<mappers>
???<mapper resource="conf/mybatis/file/fileInfoRecordSQL.xml"></mapper>
???<mapper resource="conf/mybatis/note/workNoteSQL.xml"></mapper>
???<mapper resource="conf/mybatis/user/chatUserInfoSQL.xml"></mapper>
???<mapper resource="conf/mybatis/user/loginSQL.xml"></mapper>
???<mapper resource="conf/mybatis/user/modifyUserInfo.xml"></mapper>
???<mapper resource="conf/mybatis/vote/voteSystemSQL.xml"></mapper>
??</mappers>
?</configuration>

3.Mybatis主配置文件中Mapper的resource來源,上圖說明,注意此路徑要從src目錄下開始

上面具體每個(gè)文件里的sql就不全貼了,只貼一個(gè)login的為例子,寫的不足之處還請(qǐng)見諒

loginSQL.xml

<?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.farmyears.dao.login.LoginDao">
?<select id="getUserInforByUserCode" parameterType="String"
??resultType="com.farmyears.vo.UserVO">
??SELECT
??USER_ID as userId, USER_NAME as userName, USER_SEX as userSex, USER_BIRTH as userBirth,
??USER_AGE as userAge, USER_CODE as userCode, USER_EDUCATION as userEducation, USER_JOB as userJob,
??USER_ADDRESS as userAddress, USER_PASSWORD as userPassword, USER_PERMISSION as userPermission, USER_SCHOOL as userSchool, USER_PROFESSION as userProfession FROM user_table WHERE
??USER_CODE=#{userCode}
?</select>
?
?<select id="getUserInfoList" parameterType="com.farmyears.vo.UserVO"
??resultType="com.farmyears.vo.UserVO">
??SELECT
??USER_ID as userId, USER_NAME as userName, USER_SEX as userSex, USER_BIRTH as userBirth,
??USER_AGE as userAge, USER_CODE as userCode, USER_EDUCATION as userEducation, USER_JOB as userJob,
??USER_ADDRESS as userAddress, USER_PASSWORD as userPassword, USER_PERMISSION as userPermission,
??USER_SCHOOL as userSchool, USER_PROFESSION as userProfession FROM user_table
??WHERE 1 = 1
??<if test='userName != null and userName !=""'>
???AND USER_NAME LIKE CONCAT('%', #{userName}, '%')
??</if>
??<if test='userAddress != null and userAddress !=""'>
???AND USER_ADDRESS LIKE CONCAT('%', #{userAddress}, '%')
??</if>
??<if test='userSchool != null and userSchool !=""'>
???AND USER_SCHOOL LIKE CONCAT('%', #{userSchool}, '%')
??</if>
??<if test='userProfession != null and userProfession !=""'>
???AND USER_PROFESSION LIKE CONCAT('%', #{userProfession}, '%')
??</if>
??LIMIT #{start}, #{limit}
?</select>
?<select id="excelExport" parameterType="com.farmyears.vo.UserVO"
??resultType="com.farmyears.vo.UserVO">
??SELECT
??USER_ID as userId, USER_NAME as userName, USER_SEX as userSex, USER_BIRTH as userBirth,
??USER_AGE as userAge, USER_CODE as userCode, USER_EDUCATION as userEducation, USER_JOB as userJob,
??USER_ADDRESS as userAddress, USER_PASSWORD as userPassword, USER_PERMISSION as userPermission,
??USER_SCHOOL as userSchool, USER_PROFESSION as userProfession FROM user_table
??WHERE 1 = 1
??<if test='userName != null and userName !=""'>
???AND USER_NAME LIKE CONCAT('%', #{userName}, '%')
??</if>
??<if test='userAddress != null and userAddress !=""'>
???AND USER_ADDRESS LIKE CONCAT('%', #{userAddress}, '%')
??</if>
??<if test='userSchool != null and userSchool !=""'>
???AND USER_SCHOOL LIKE CONCAT('%', #{userSchool}, '%')
??</if>
??<if test='userProfession != null and userProfession !=""'>
???AND USER_PROFESSION LIKE CONCAT('%', #{userProfession}, '%')
??</if>
?</select>
?<select id="getUserInfoCount" parameterType="com.farmyears.vo.UserVO"
??resultType="com.farmyears.vo.UserVO">
??SELECT
??COUNT(USER_ID) as userCount
??FROM user_table
??WHERE 1 = 1
??<if test='userName != null and userName !=""'>
???AND USER_NAME LIKE CONCAT('%', #{userName}, '%')
??</if>
??<if test='userAddress != null and userAddress !=""'>
???AND USER_ADDRESS LIKE CONCAT('%', #{userAddress}, '%')
??</if>
??<if test='userSchool != null and userSchool !=""'>
???AND USER_SCHOOL LIKE CONCAT('%', #{userSchool}, '%')
??</if>
??<if test='userProfession != null and userProfession !=""'>
???AND USER_PROFESSION LIKE CONCAT('%', #{userProfession}, '%')
??</if>
?</select>
</mapper>

此處加一個(gè)小知識(shí),#{}和${}這兩個(gè)大家平時(shí)可能只顧著用了,#{}可以防止sql注入,${}不行,詳細(xì)的原理自行查找到處都有。

4. web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
? <listener>
? ?<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
? </listener>
? <context-param>
? ?<param-name>contextConfigLocation</param-name>
? ?<param-value>classpath:conf/spring/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:conf/spring/ApplicationContext.xml</param-value>
? ?</init-param>
? ?<load-on-startup>1</load-on-startup>
? </servlet>
? <servlet-mapping>
? ?<servlet-name>springMVC</servlet-name>
? ?<url-pattern>*.do</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>utf8</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>characterFilter</filter-name>
? ??<filter-class>com.farmyears.common.filter.CharacterFilter</filter-class>
? </filter>
? <filter-mapping>
? ??<filter-name>characterFilter</filter-name>
? ??<url-pattern>/*</url-pattern>
? </filter-mapping>
? <welcome-file-list>
? ??<welcome-file>jsp/login/login.jsp</welcome-file>
? </welcome-file-list>
</web-app>

5.接下來上后臺(tái)代碼

Controller

package com.farmyears.action.login;

import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.farmyears.common.util.ExcelExportUtil;
import com.farmyears.service.login.LoginService;
import com.farmyears.vo.LoginResultVO;
import com.farmyears.vo.PageList;
import com.farmyears.vo.UserVO;

//以下代碼都是業(yè)余學(xué)習(xí),寫得代碼沒有什么嚴(yán)格的規(guī)范遵循,僅供參考。

@Controller
@RequestMapping("user")
public class LogingAction {

?@Resource
?private LoginService service;

?@RequestMapping("/firstPage")
?public ModelAndView backFirstPage(HttpServletRequest request, HttpServletResponse respose, ModelAndView mav)
???throws IOException, ServletException {
??mav.setViewName("jsp/main");
??return mav;
?}
?@RequestMapping("/login")
?public ModelAndView service(HttpServletRequest request, HttpServletResponse respose, ModelAndView mav,
???String userCode, String password) throws IOException, ServletException {

??userCode = (userCode == null || userCode.equals("")) ? "000000" : userCode;
??String rigestSymble = request.getParameter("rigest");
??if ("YES".equalsIgnoreCase(rigestSymble)) {
???mav.setViewName("jsp/login/rigestUserInfo");
???return mav;
??}
??if ("000000".equals(userCode)) {
???mav.setViewName("jsp/login/login");
??} else {
???LoginResultVO vo = service.getUserInforByUserCode(userCode, password);
???if ("0".equals(vo.getStatus()) || "2".equals(vo.getStatus())) {
????mav.addObject("loginResult", vo);
????mav.setViewName("jsp/login/login");
???} else {
????mav.addObject("loginResult", vo);
????mav.setViewName("jsp/main");
???}
??}
??return mav;
?}

?@RequestMapping("/userList")
?public ModelAndView getUserList(HttpServletRequest request, HttpServletResponse respose, ModelAndView mav) {
??String userName = request.getParameter("userNameId");
??String userAddress = request.getParameter("userAddressId");
??String userSchool = request.getParameter("userSchoolId");
??String userProfession = request.getParameter("userProfessionId");
??String start = request.getParameter("start");
??String limit = request.getParameter("limit");
??start = null == start ? "0" : start;
??limit = null == limit ? "10" : limit;
??UserVO vo = new UserVO();
??vo.setUserName(userName);
??vo.setUserAddress(userAddress);
??vo.setUserSchool(userSchool);
??vo.setUserProfession(userProfession);
??vo.setStart(Integer.parseInt(start));
??vo.setLimit(Integer.parseInt(limit));
??UserVO vo2 = service.getUserInfoCount(vo);
??PageList pageList = service.getUserInfoList(vo);
??pageList.setUserCount(vo2.getUserCount());
??mav.setViewName("jsp/business/userList");
??mav.addObject("pageList", pageList);
??return mav;
?}

?@RequestMapping("/excelExport")
?public void excelExport(HttpServletRequest request, HttpServletResponse response, ModelAndView mav) {
??String userName = request.getParameter("userNameId");
??String userAddress = request.getParameter("userAddressId");
??String userSchool = request.getParameter("userSchoolId");
??String userProfession = request.getParameter("userProfessionId");
??String start = request.getParameter("start");
??String limit = request.getParameter("limit");
??UserVO vo = new UserVO();
??vo.setUserName(userName);
??vo.setUserAddress(userAddress);
??vo.setUserSchool(userSchool);
??vo.setUserProfession(userProfession);
??PageList pageList = service.excelExport(vo);
??List<UserVO> list = pageList.getPageList();
??// 進(jìn)行查詢并導(dǎo)出
??if (list != null && list.size() > 0) {// 查詢的數(shù)據(jù)不為空就對(duì)數(shù)據(jù)進(jìn)行導(dǎo)出
???// 導(dǎo)出文件的標(biāo)題
???SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
???String title = "User Infomation List-" + sdf.format(new Date()) + ".xls";
???// 設(shè)置表格標(biāo)題行
???String[] headers = new String[] { "序號(hào)", "姓名", "性別", "出生日期", "年齡", "身份證號(hào)", "職業(yè)", "住址", "學(xué)歷", "畢業(yè)院校", "專業(yè)" };
???List<Object[]> dataList = new ArrayList<Object[]>();
???Object[] objs = null;
???for (int i = 0; i < list.size(); i++) { // 循環(huán)每一條數(shù)據(jù)
????UserVO vo2 = list.get(i);
????objs = new Object[headers.length];
????objs[0] = i+1;// 序號(hào)
????objs[1] = vo2.getUserName();
????objs[2] = vo2.getUserSex();
????objs[3] = vo2.getUserBirth();
????objs[4] = vo2.getUserAge();
????objs[5] = vo2.getUserCode();
????objs[6] = vo2.getUserJob();
????objs[7] = vo2.getUserAddress();
????objs[8] = vo2.getUserEducation();
????objs[9] = vo2.getUserSchool();
????objs[10] = vo2.getUserProfession();
????// 數(shù)據(jù)添加到excel表格
????dataList.add(objs);
???}
???// 使用流將數(shù)據(jù)導(dǎo)出
???OutputStream out = null;
???try {
????// 防止中文亂碼
????String headStr = "attachment; filename=\"" + new String(title.getBytes("gb2312"), "ISO8859-1") + "\"";
????response.setContentType("octets/stream");
????response.setContentType("APPLICATION/OCTET-STREAM");
????response.setHeader("Content-Disposition", headStr);
????out = response.getOutputStream();
????ExcelExportUtil util = new ExcelExportUtil(title, headers, dataList);
????util.export(out);
???} catch (Exception e) {
????e.printStackTrace();
???}
??}

?}

}

Service接口

package com.farmyears.service.login;

import org.springframework.stereotype.Service;

import com.farmyears.vo.LoginResultVO;
import com.farmyears.vo.PageList;
import com.farmyears.vo.UserVO;

@Service
public interface LoginService {
?public LoginResultVO getUserInforByUserCode(String userCode, String password);
?public PageList getUserInfoList(UserVO vo);
?public UserVO getUserInfoCount(UserVO vo);
?public PageList excelExport(UserVO vo);
}

Service實(shí)現(xiàn)類

package com.farmyears.service.impl.login;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.farmyears.dao.login.LoginDao;
import com.farmyears.service.login.LoginService;
import com.farmyears.vo.LoginResultVO;
import com.farmyears.vo.PageList;
import com.farmyears.vo.UserVO;

@Service("loginService")
public class LoginServiceImpl implements LoginService {
?@Resource
?private LoginDao dao;

?@Override
?public LoginResultVO getUserInforByUserCode(String userCode, String password) {
??UserVO vo = dao.getUserInforByUserCode(userCode);
??// 用戶不存在
??LoginResultVO resultVo = new LoginResultVO();
??if (null == vo) {
???UserVO vo1 = new UserVO();
???vo1.setUserCode(userCode);
???vo1.setUserPassword(password);
???resultVo.setVo(vo1);
???resultVo.setStatus("0");
???resultVo.setUserNameMsg("User does not exist!");
??} else if (vo.getUserPassword().equals(password)) {
???resultVo.setStatus("1");
???if ("SUPPER_ADMIN".equals(vo.getUserName())) {
????vo.setUserPermission("SUPPER_ADMIN");
???} else if ("ADMIN".equals(vo.getUserName())) {
????vo.setUserPermission("ADMIN");
???} else {
????vo.setUserPermission("COMMON");
???}
???resultVo.setVo(vo);

??} else {
???// 密碼錯(cuò)誤
???UserVO vo2 = new UserVO();
???vo2.setUserCode(userCode);
???vo2.setUserPassword(password);
???resultVo.setVo(vo2);
???resultVo.setStatus("2");
???resultVo.setPasswordMsg("Password error!");
??}
??return resultVo;
?}

?@Override
?public PageList getUserInfoList(UserVO vo) {
??List<UserVO> list = dao.getUserInfoList(vo);
??PageList pageList = new PageList();
??pageList.setPageList(list);
??return pageList;
?}

?@Override
?public UserVO getUserInfoCount(UserVO vo) {
??UserVO result = dao.getUserInfoCount(vo);
??return result;
?}

?@Override
?public PageList excelExport(UserVO vo) {
??List<UserVO> list = dao.excelExport(vo);
??PageList pageList = new PageList();
??pageList.setPageList(list);
??return pageList;
?}
}

Dao接口

package com.farmyears.dao.login;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.farmyears.vo.UserVO;

@Repository
public interface LoginDao {
?public UserVO getUserInforByUserCode(String userCode);
?public List<UserVO> getUserInfoList(UserVO vo);
?public UserVO getUserInfoCount(UserVO vo);
?public List<UserVO> excelExport(UserVO vo);
}

接下來上前臺(tái)代碼:

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
??? pageEncoding="UTF-8"%>
??? <%
??? String path = request.getContextPath();
?String basePath = request.getScheme() + "://" + request.getServerName() + ":"+ request.getServerPort() + path + "/";
??? %>
<!DOCTYPE html>
<html>
<head>
?<base href="<%=basePath%>">
?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<frameset rows="7%, *, 3%" frameborder="1" border="1" framespacing="1" bordercolor="#00aaff">
?<frameset cols="*">
??<frame src="<%=path%>/jsp/pageTab/Top_Right.html" name="Top-right" scrolling="auto" noresize="noresize"/>
?</frameset>
?<frameset cols="10%, *">
??<frame src="<%=path%>/jsp/pageTab/Left.html" name="Left" scrolling="auto" noresize="noresize"/>
??<frame src="<%=path%>/jsp/pageTab/Advertising.html" name="showMain" scrolling="auto" noresize="noresize"/>
?</frameset>
?<frame src="<%=path%>/jsp/pageTab/Footer.html" name="Foot" scrolling="auto" noresize="noresize"/>
</frameset>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
?String path = request.getContextPath();
?String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>

<head>
<base href="<%=basePath%>">
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8' />
<title>登陸</title>
<link rel="stylesheet" type="text/css" href="<%=path %>/css/login/loginCss.css"/>
<script type="text/javaScript" src="<%=path %>/js/jquery-3.2.1.min.js"></script>
<script type="text/javaScript" src="<%=path %>/js/common/MD5.js"></script>
<script type="text/javaScript" src="<%=path %>/js/login/login.js"></script>
</head>
<body οnkeydοwn="keyClickFun()">
?<div id="loginSystemId" class="loginSystemClass">
??<form id="loginFormId" action="user/login.do" method="post" οnsubmit="return check()">
???<input type="hidden" id="rigestSymble" name = "rigest" value="NO" />
???<div id="titleId" class="titleClass">管理員登陸系統(tǒng)</div>
???<table class="inputTable">
????<tr>
?????<td class="trtd0"></td>
?????<td class="trtd1"><span id="usernameSpan">用戶名:</span></td>
?????<td class="trtd2"><input type="text" name="userCode" class="userInput" id="usernameId" value="${loginResult.vo.userCode}" οnblur="checkUserCode();"/></td>
?????<td class="trtd3"><span id="nameMsg" > ${loginResult.userNameMsg}</span></td>
????</tr>
????<tr>
?????<td class="trtd0"></td>
?????<td class="trtd1"><span id="passwordSpan">密 碼:</span></td>
?????<td class="trtd2"><input type="password" name="password" class="userInput" id="passwordId" value="${loginResult.vo.userPassword}"/></td>
?????<td class="trtd3"><span id="passwordMsg"> ${loginResult.passwordMsg}</span></td>
????</tr>
????
????<tr class="buttonClass">
?????<td class="trtd5" colspan="2"><input type="button" value="注冊(cè)" id="rigestId" οnclick="rigestFunction()"/></td>
?????<td ><input type="submit" value="登陸" id="submitId"/></td>
?????<td class="trtd4" ><input type="button" value="取消" id="cancelId" οnclick="cancelFunction()"/></td>
????</tr>
???</table>
??</form>
?</div>
</body>
<footer>
??@Author:dehui.zhang
</footer>
</html>

main.js

$(function(){
?//背景動(dòng)態(tài)閃爍
?//changeBackgorundColor();
?$("#backPage").click(function(){
??alert("返回到首頁的功能還在升級(jí)中。。。");
??//opensubPage('backFormId','user/firstPage.do', 'BACK_PAGE', '');
?});
?
?
});
/**
?* 通過form表單動(dòng)態(tài)發(fā)送請(qǐng)求
?* @param url
?* @param param? 數(shù)組,如['start=0', 'name=Tom']組
?* @returns
?*/
function opensubPage(formId, url, symble, target){
?var basePath = getBasePath();
?var abURL = basePath + url;
?$("#"+ formId).attr("action", abURL);
?if (target != "") {
??$("#"+ formId).attr("target", target);
?}
?var param = getParamFormPage(symble);
?createInputElement(formId, param);
?$("#"+ formId).submit();
}

//參數(shù)
function getParamFormPage(symble){
?var param = [];
?if (symble == "USER_INFO") {
??param.push('start=0');
?}else if (symble == "MAX_MIN_PLAY") {
??
?} else if (symble == "MY_NOTE"){
??var userName = ?'dehui.zhang';
??param.push('createAuthor=' + userName);
?} else if (symble == "Web_Chat") {
??
?}else if (symble == "File_Up_Down") {
??
?}else if (symble == "BACK_PAGE"){
??
?}else if (symble == "VOTE"){
??
?}else {
??var temp = symble.split("*");
??for (var i = 0; i < temp.length; i++) {
???param.push(temp[i]);
??}
?}
?return param;
}

/**
?* js文件中獲取基礎(chǔ)路徑
?* @returns
?*/
function getBasePath(){
?var base = window.location+'';
?var location = base.split('/');
?var basePath = location[0]+'//'+location[2]+'/'+location[3]+'/';
?return basePath;
}

/**
?* 動(dòng)態(tài)添加input標(biāo)簽
?* @param param
?* @returns
?*/
function createInputElement(formId, param){
?var str=$("#"+ formId)
?str.empty();? //清空追加子元素
?for(var i=0; i<param.length; i++){
??var temp = param[i];
??var name = temp.split("=")[0];
??var value = temp.split("=")[1];
??str.append('<input type="text" name=' + name + ' value=' + value + ' />');
?}
}

function changeBackgorundColor(){
?window.setInterval(function(){
??changeBackgroundCol("userListDiv", '#ffffff');
??setTimeout("changeBackgroundCol('userListDiv', '#ff80ff')", 100);
?}, 1000);
}
function changeBackgroundCol(elementId, color){
?var t = $("#" + elementId);
?t.css('background-color', color);
}

login.js

?function keyClickFun() {
??if (window.event.keyCode == 13) {
???$("#rigestSymble").val("NO");
???$("#submitId").click();
??}
?}
?function checkUserCode(){
??var reg = /^[0-9]{18}$/;
??var userCode = $("#usernameId").val();
??if (!reg.test(userCode)) {
???$("#nameMsg").text("Please enter the correct user name.");
???return;
??} else {
???$("#nameMsg").text("");
??}
?
?}
?function check(){
??if($("#rigestSymble").val() == "YES"){
???return true;
??}
??$("#rigestSymble").val("NO");
??var userCode = $("#usernameId").val();
??var password = $("#passwordId").val();
??if (userCode == "") {
???alert("Please input userName!");
???return false;
??}
??if (password == "") {
???alert("Please input password!");
???return false;
??}
??
??//對(duì)用戶輸入的密碼進(jìn)行加密
??var newPassword = hex_md5(password);
??$("#passwordId").val("");
??$("#passwordId").val(newPassword);
??return true;
?}
?
?function cancelFunction(){
??$("#rigestSymble").val("NO");
??$("#usernameId").val("");
??$("#passwordId").val("");
??$("#nameMsg").text("");
??$("#passwordMsg").text("");
?}
?
?function rigestFunction(){
??$("#rigestSymble").val("YES");
??$("#loginFormId").submit();
?}

main.css

body {
?margin: 0 0 0 0;
?padding: 0 0 0 0;
?background-color: #00ffff;
}
#formId{
?display:none;
}
#backFormId{
?display:none;
}
.main_top_title{?
?height: 100%;
?width: 100%;
?line-height: 12px;
?text-align: center;
?color: #ffffff;
?position: absolute;
?font-weight: bold;
?margin: 0 0 0 0;
?background-image: url(../resource/image/title_second.jpg);
?background-repeat: no-repeat;
?background-size: cover;
}
.main_top_title2{
?height: 100%;
?width: 100%;
?margin: auto 5;
?font-size: 40px;
?font-weight: bold;
?font-family:fantasy;
?color: #ffffff;
?background-color: #00ffff;
?margin: 0 0 0 0;
}
.main_left{
?height: 100%;
?width: 100%;
?margin: 0 0 0 0;
?text-align: left;
?position: absolute;
?background-color: #00ffff;
}
.main_left_title{
?height: 30px;
?width: 100%;
?float: left;
?margin-top: 20px;
?text-align: center;
?font-weight: bold;
}
.main_left_title a:hover {
?color: #ffffff;
}
.main_auto{
?height: 100%;
?width: 100%;
?position: absolute;
?background-image: url(../resource/image/background_xunyicao2.jpg);
?background-repeat: no-repeat;
?background-size: cover;
}
a{
?text-decoration: none;
}
.footerDiv{
?width: 100%;
?height:100%;
?margin: 0 0;
?position: absolute;
?text-align: center;
?background-color: #00ffff;
?font-size:14px;
?font-weight:bold;
?color:white;
?left: 0;
?bottom: 0;
}

login.css

body {
??? text-align:center;
??? background-image: url(../../resource/image/caihong.jpg);
??? background-size: cover;
??? background-repeat: no-repeat;
??}
?.titleClass {
??? background-color:#4888ff;
??? width: 400px;
??? height:30px;
??? line-height:30px;
??? float: left;
??? margin-bottom: 25px;
??? color:#ffffff;
??? font-weight:bold;
??? }
?#submitId {
??? color: #ffffff;
??? background-color:#cccccc;
??? font-weight:bold;
??? margin:0 45 0 10;
??}
?#cancelId {
??? color: #ffffff;
??? background-color:#cccccc;
??? font-weight:bold;
??? margin:0 10 0 45;
??}
?#rigestId {
??? color: #ffffff;
??? background-color:#cccccc;
??? font-weight:bold;
??? margin:0 10 0 45;
??}
?.loginSystemClass {
?? float:left;
?? margin-top: 250px;
?? margin-left:500px;
?? background-color:#48ccff;
?? padding:0 0 10 0;
?? width: 400px;
?? height:200px;
?}
?.userInput{
??width: 150px;
?}
?#nameMsg {
??? color: red;
??? font-size: 10px;
??}
?#passwordMsg {
??? color: red;
??? font-size: 10px;
??}
??
?#usernameSpan {
??? color:ffffff;
??? font-size:14px;
??? font-weight:bold;
??}
??
?#passwordSpan {
??? color:ffffff;
??? font-size:14px;
??? font-weight:bold;
??}
?.inputTable{
??text-align:center;
??height: 150px;
??margin: 0, auto;
?}
?.trtd0{
??width: 50px;
?}
?.trtd1{
??width: 80px;
?}
?.trtd2{
??text-align: left;
??width: 150px;
?}
?.trtd3{
??text-align: left;
??width: 100px;
?}
?.buttonClass{
??height: 100px;
??padding-bottom: 0;
?}
?.trtd4{
??text-align: left;
?}
?.trtd5{
??text-align: right;
?}
footer{
?width: 100%;
?position: absolute;
?text-align: center;
?background-color: #00ffff;
?font-size:14px;
?font-weight:bold;
?color:white;
?left: 0;
?bottom: 0;
}

以上我只是挑取了其中一個(gè)業(yè)務(wù)從前到后的代碼貼出來了,這是工作之余自學(xué)寫的,有不足之處還請(qǐng)多多包涵。。。



 

總結(jié)

以上是生活随笔為你收集整理的springMVC结合Mybatis自学搭简单框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。