Maven--搭建Web專案
1 之前搭專案一直都是採用新增架包的形式,學了一下Maven,嘗試採用Maven搭Web專案。
將Dao層和Service層和Controller分層,分到三個不同的專案中,通過依賴來連線三個不同的層次。
2 Dao層,即資料訪問層,建立一個Maven專案
2.1 生成Maven專案
填寫說明:Group Id為專案名稱,而Artifact ID為子專案名稱。比如Spring即為Group Id,而Artifact ID為spring-context,即主從的關係。版本自己定義。Package為幫助你提前生成一個包。可隨意填寫,生成後可更改。
2.2 Finish後會看到如下的專案結構
2.3 更改jdk版本,預設生成的不知道是啥編譯版本,改成自己想要的版本
2.4 建立配置檔案資料夾
放在該下的配置檔案均用classpath:來訪問。並且部署後apache-tomcat-8.0.35\webapps\user-web\WEB-INF\classes下。
生成檔案目錄如下:
pom中新增設計到的架包
<dependencies>
<!-- Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<!-- 日誌 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- 測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
Mapper.xml檔案:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.text.dao.UserMapper" >
<resultMap id="BaseResultMap" type="com.text.pojo.User" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, `name`, `password`
</sql>
<select id="selectByExample" resultMap="BaseResultMap" parameterType="com.text.pojo.UserExample" >
select
<if test="distinct" >
distinct
</if>
<include refid="Base_Column_List" />
from `user`
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null" >
order by ${orderByClause}
</if>
</select>
對映的介面:
package com.text.dao;
import com.text.pojo.User;
import com.text.pojo.UserExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper {
/**
* 批量條件查詢
* 引數:查詢條件,null查整張表
* 返回:物件集合
* @ibatorgenerated 2017-02-07 23:33:19
*/
List<User> selectByExample(UserExample example);
}
實體:
package com.text.pojo;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private String name;
private String password;
//get set 省略
3 Service層
和上面一樣,均生成一個Maven專案
pom.xml
<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.java.1234.user</groupId>
<artifactId>user-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>user-service</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 依賴本地的Dao層專案 -->
<dependency>
<groupId>com.java.1234.user</groupId>
<artifactId>user-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Service依賴Dao成中的類,所以要在pom.xml中引用
Service中的新增兩個包:一個com.text.service.impl.user,一個com.text.service.user
package com.text.service.user;
import java.util.List;
import com.text.pojo.User;
public interface UserService {
/**
* 根據使用者條件進行查詢
*/
public List<User> getUserInfoByCondition(User user);
}
package com.text.service.impl.user;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.text.dao.UserMapper;
import com.text.pojo.User;
import com.text.pojo.UserExample;
import com.text.pojo.UserExample.Criteria;
import com.text.service.user.UserService;
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper userMapper;
/**
* 根據使用者條件進行查詢
*/
public List<User> getUserInfoByCondition(User user){
UserExample example=new UserExample();
Criteria criteria=example.createCriteria();
criteria.andNameEqualTo(user.getName());
criteria.andPasswordEqualTo(user.getPassword());
return userMapper.selectByExample(example);
}
}
4 Controller層,生成Maven專案和上面有點不一樣,在第三步的位置
生成專案後替換兩個檔案
pom.xml中引入需要的架包,通過新增Service層依賴包,如下只貼的部分程式碼:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.java.1234.user</groupId>
<artifactId>user-web</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>user-web</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- Server層依賴-->
<dependency>
<groupId>com.java.1234.user</groupId>
<artifactId>user-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<finalName>user-web</finalName>
</build>
</project>
建立resources資料夾存放配置檔案,如spring-mvc.xml和applicationContext.xml
建立com.text.controller.user包,新增一個控制類:
@RequestMapping("/user")
@Controller
public class UserController {
@Autowired
private UserService userService;
/**
* 驗證登入
* @param response
* @param request
* @param user
* @throws IOException
*/
@RequestMapping("/login")
public String login(HttpServletResponse response,HttpServletRequest request,User user) throws IOException{
List<User> lstUser=userService.getUserInfoByCondition(user);
if(lstUser!=null&&lstUser.size()>0){
request.setAttribute("message", "success");
}else{
request.setAttribute("message", "error");
}
return "index";
}
}
index.jsp頁面:
<body>
<form id="form01" action="<%=basePath %>user/login.html" enctype="multipart/form-data" >
<input type="text" name="name" id="name"/>
<input type="password" name="password" id="password"/>
<input type="submit" value="確認">
</form>
${message }
</body>
效果:
附出現的警告及報錯:
警告:Establishing SSL connection without server’s identity verification is not recommended.
解決方案:在mysql連線字串url中加入ssl=true或者false即可,如下所示。
url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true
參考:https://zhidao.baidu.com/question/2056521203295428667.html
applicationContext.xml報錯:The reference to entity “useSSL” must end with the ‘;’ delimiter.
連線jdbc時,路徑連結引數之前一直是使用&符號連線,但是這次卻 提示用;來進行連線,wtf!
於是 按照編譯器的提示 我把&改為;,於是 執行 起來它把兩個引數 當做了一個引數,OhMyGod!
在沒頭沒腦的一番探索後,終於發現問題,在xml檔案中 &符號 需要轉義 這個根據 HTML 的轉義規則 更改就行
& -> & 於是便解決了
如:jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true
參考:http://www.zhimengzhe.com/shujuku/MySQL/282953.html
下載位置:http://download.csdn.net/download/btwangzhi/9941189
學習自某java1234網站.
相關文章
- nodejs搭建web專案NodeJSWeb
- 使用SpringBoot搭建Web專案Spring BootWeb
- java-springmvc4-web專案搭建JavaSpringMVCWeb
- Spring Boot入門-快速搭建web專案Spring BootWeb
- Eclipse-用Eclipse搭建一個web專案EclipseWeb
- Maven--外掛Maven
- WIN7環境使用nodejs快速搭建web專案Win7NodeJSWeb
- IntelliJ IDEA配置與搭建web專案入門使用IntelliJIdeaWeb
- mvn 建立java專案 web專案JavaWeb
- 基於.NetCore開發部落格專案 StarBlog - (5) 開始搭建Web專案NetCoreWeb
- 使用gulp搭建專案
- Django專案搭建流程Django
- vue專案的搭建Vue
- webpack 搭建 vue 專案WebVue
- 搭建一個專案
- 商城專案--工程搭建
- maven 建立web專案MavenWeb
- MVVM框架的搭建(二)——專案搭建MVVM框架
- gradle手工搭建java專案搭建GradleJava
- Maven--繼承與聚合Maven繼承
- React專案模板-從專案搭建到部署React
- Django+Vue.js搭建前後端分離專案 web前後端分離專案實踐DjangoVue.js後端Web
- Java Web系列:Java Web 專案基礎JavaWeb
- 搭建Typescript+React專案模板(4) --- 專案打包TypeScriptReact
- 搭建Typescript+React專案模板(4) — 專案打包TypeScriptReact
- Flutter專案實戰(1):通用專案框架搭建Flutter框架
- .Net Core 3.1瀏覽器後端服務(一) Web API專案搭建瀏覽器後端WebAPI
- Golang初學:新建專案 及 gin web 專案GolangWeb
- 使用webpack搭建vue專案WebVue
- Vue-CLI 專案搭建Vue
- 搭建一個SSM專案SSM
- Vue搭建專案環境Vue
- webpack初步搭建Vue專案WebVue
- 用webstorm搭建vue專案WebORMVue
- Vue專案搭建 + 引入ElementUIVueUI
- SpringBoot專案搭建Spring Boot
- eclipse 搭建maven專案EclipseMaven
- 專案中快速搭建Retrofit