国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaWeb核心、綜合案例(詳細(xì)!Web開發(fā)流程)

這篇具有很好參考價值的文章主要介紹了JavaWeb核心、綜合案例(詳細(xì)!Web開發(fā)流程)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

案例說明

一、創(chuàng)建MavenWeb項目

二、導(dǎo)入相關(guān)依賴

1、導(dǎo)入maven編譯插件

2、導(dǎo)入tomacat插件

3、導(dǎo)入servlet依賴

4、導(dǎo)入druid數(shù)據(jù)庫連接池依賴

5、導(dǎo)入mysql依賴

6、導(dǎo)入mybatis依賴

7、導(dǎo)入junit依賴

8、導(dǎo)入mybatis核心配置文件mybatis-config.xml

三、使用Mapper代理

導(dǎo)入MySql映射文件 XXXMapper.xml

?創(chuàng)建mapper接口

四、IDEA配置tomcat

五、創(chuàng)建數(shù)據(jù)庫

六、開始編碼

1、創(chuàng)建實體類User

?2、在mapper接口中定義用戶操作

3、在mapper接口對應(yīng)的SQL映射文件創(chuàng)建SQL語句

4、創(chuàng)建一個工具類

5、創(chuàng)建servlet包,處理登陸注冊的業(yè)務(wù)邏輯

登陸操作:

注冊操作:

七、項目展示


個人博客歡迎訪問 ---? 猿客棧

案例說明

完成用戶登錄和用戶注冊邏輯,與后端數(shù)據(jù)庫聯(lián)系

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

一、創(chuàng)建MavenWeb項目

點(diǎn)擊新建模塊,勾選使用骨架快速搭建。

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

二、導(dǎo)入相關(guān)依賴

在pom.xml文件中刪除無用的代碼,導(dǎo)入項目需要的依賴。設(shè)置打包方式位war包

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

1、導(dǎo)入maven編譯插件

?聲明編譯的jdk版本,如果不導(dǎo)入插件,會報不支持發(fā)行版本5的錯誤

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
</build>

2、導(dǎo)入tomacat插件

使maven可以直接編譯tomcat的項目插件,選擇性安裝,只能支持到tomcat7

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>80</port>
     </configuration>
</plugin>

3、導(dǎo)入servlet依賴

<dependencies>

   <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>3.1.0</version>
     <scope>provided</scope>
   </dependency>

4、導(dǎo)入druid數(shù)據(jù)庫連接池依賴

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid</artifactId>
     <version>1.1.12</version>
   </dependency>

5、導(dǎo)入mysql依賴

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.34</version>
   </dependency>

6、導(dǎo)入mybatis依賴

<dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.9</version>
   </dependency>

7、導(dǎo)入junit依賴

<dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>3.8.2</version>
     <scope>test</scope>
   </dependency>
</dependencies>

8、導(dǎo)入mybatis核心配置文件mybatis-config.xml

放入resources資源文件夾下。

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

<!--Mybatis核心配置文件-->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!--
    使用typeAliases再進(jìn)行包掃描,給該包下的所有實體類起別名,直接使用不區(qū)分大小寫的類名
    例如SQL映射文件下的返回值類型可以直接使用user,而不是com.itheima.pojo.user
    -->
    <typeAliases>
        <package name="com.itheima.pojo"/>
    </typeAliases>

    <!--environments:配置數(shù)據(jù)庫連接環(huán)境信息,可以配置多個environment,通過default屬性切換不同的environment-->
    <environments default="development">
        <environment id="development">
            <!--事物的管理方式-->
            <transactionManager type="JDBC"/>
            <!--數(shù)據(jù)庫連接池,默認(rèn)為POOLED-->
            <dataSource type="POOLED">
                <!--數(shù)據(jù)庫連接信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/users?useSSL=false&amp;userServerPrepStmts=true"/>
                <property name="username" value="root"/>
                <property name="password" value="12345"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--加載SQL映射文件,使用包掃描-->
        <package name="com.itheima.mapper"/>
    </mappers>
</configuration>

三、使用Mapper代理

導(dǎo)入MySql映射文件 XXXMapper.xml

文件名稱為(操作的pojo實體類對象名稱+Mapper).xml? 放入resources資源文件夾下。

<?xml version="1.0" encoding="UTF-8" ?>
<!--SQL映射文件-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--mapper根標(biāo)簽  namespace必須要指定名稱-->
<mapper namespace="com.itheima.mapper.UserMapper">

</mapper>

?創(chuàng)建mapper接口

在java文件夾下創(chuàng)建一個mapper包,包下創(chuàng)建與SQL映射文件同名的mapper接口,在接口中聲明操作數(shù)據(jù)庫的方法,可以安裝MyBatisX插件,實現(xiàn)方法與映射文件間的快速跳轉(zhuǎn)。

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

?同時要在resource文件夾下創(chuàng)建一個與mapper接口包名 同名的文件夾,將SQL映射文件放入。

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

?完成Mapper代理

四、IDEA配置tomcat

在?Web核心 中有明確說明,注意要配置Deployment,導(dǎo)入war包。

五、創(chuàng)建數(shù)據(jù)庫

id user_name password tel

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

六、開始編碼

1、創(chuàng)建實體類User

public class User {
    private Integer id;
    private String username;
    private String password;
    private String tel;

    public User() {
    }

    public User(String username, String password,String tel) {
        this.username = username;
        this.password = password;
        this.tel = tel;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
}

?2、在mapper接口中定義用戶操作

public interface UserMapper {
    //根據(jù)用戶名和密碼查詢用戶對象
    User select(@Param("username") String username, @Param("password") String password);

    //注冊用戶
    int add(User user);

    //根據(jù)用戶名查找是否存在
    User selectByName(@Param("username") String username);
}

3、在mapper接口對應(yīng)的SQL映射文件創(chuàng)建SQL語句

<?xml version="1.0" encoding="UTF-8" ?>
<!--SQL映射文件-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--mapper根標(biāo)簽  namespace必須要指定名稱-->
<mapper namespace="com.itheima.mapper.UserMapper">

    <resultMap id="userResultMap" type="user">
        <!--resultMap有兩個常用屬性 id:設(shè)置主鍵字段的映射  result:設(shè)置一般字段的映射-->
        <!--column表的列名 property實體類的屬性名-->
        <result column="user_name" property="username"></result>
    </resultMap>

    <!--根據(jù)用戶名和密碼登錄-->
    <select id="select" resultMap="userResultMap">
        select * from login where user_name=#{username} and password=#{password};
    </select>


    <!--用戶注冊-->
    <insert id="add" >
        insert into login(user_name,password,tel) values(#{username},#{password},#{tel});
    </insert>

    <!--根據(jù)用戶名判斷賬戶是否存在-->
    <select id="selectByName" resultMap="userResultMap">
        select * from login where user_name=#{username};
    </select>
</mapper>

4、創(chuàng)建一個工具類

由于整個的會話工廠只需要一個,避免代碼冗余,創(chuàng)建會話工廠工具類用來得到會話工廠。

public class SqlSessionFactoryUtils {

    //靜態(tài)代碼塊隨著類的創(chuàng)建而創(chuàng)建,且只創(chuàng)建一次,由于會話工廠只需要一個,所以用靜態(tài)代碼塊
    //登錄與注冊的代碼邏輯相同,采用工具類獲取會話工廠,避免冗余
    private static SqlSessionFactory sqlSessionFactory;
    //靜態(tài)代碼塊不能拋異常,使用異常捕獲
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static SqlSessionFactory getSqlSessionFactory(){
        return sqlSessionFactory;
    }
}

5、創(chuàng)建servlet包,處理登陸注冊的業(yè)務(wù)邏輯

登陸操作:

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1、接收用戶名和密碼
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //2、使用Mybatis操作數(shù)據(jù)庫
        //1、加載mybatis核心配置文件獲取SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

        //2、開啟SqlSession對象
        //SqlSession不能寫在工具類,因為SqlSession代表用戶與數(shù)據(jù)庫的連接,如果放在工具類,則所有用戶共用同一個連接
        //這樣無法管理事務(wù),使多個用戶之間產(chǎn)生影響
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3、獲取Mapper接口的代理對象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //4、執(zhí)行接口方法(執(zhí)行SQL語句)
        User user = userMapper.select(username,password);

        //5、釋放資源
        sqlSession.close();

        //3、查看輸出結(jié)果響應(yīng)給用戶
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        if (user != null){
            writer.write("<h1>登陸成功</h1>");
        }else {
            writer.write("<h1>登錄失敗</h1>");
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req,resp);
    }
}

注冊操作:

@WebServlet("/addServlet")
public class AddServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解決post獲取請求數(shù)據(jù)中文亂碼問題
        req.setCharacterEncoding("UTF-8");

        //1、接收用戶名、密碼和手機(jī)號
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String tel = req.getParameter("tel");
        User user1 = new User(username,password,tel);

        //2、使用Mybatis操作數(shù)據(jù)庫
        //1、加載mybatis核心配置文件獲取SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

        //2、開啟SqlSession對象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3、獲取Mapper接口的代理對象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //4、執(zhí)行接口方法(執(zhí)行SQL語句)
        //先檢查賬戶是否被注冊
        int i = 0;
        User user = userMapper.selectByName(username);
        if (user == null){
             i = userMapper.add(user1);
            sqlSession.commit();
        }

        //5、釋放資源
        sqlSession.close();

        //3、查看輸出結(jié)果響應(yīng)給用戶
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        if (i > 0){
            writer.write("<h1>注冊成功</h1>");
        }else {
            writer.write("<h1>注冊失敗,賬戶已存在</h1>");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req,resp);
    }
}

七、項目展示

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

?javaweb項目案例,JavaWeb筆記,java,servlet,mybatis,mysql

需要前端資源請私信文章來源地址http://www.zghlxwxcb.cn/news/detail-765377.html

到了這里,關(guān)于JavaWeb核心、綜合案例(詳細(xì)!Web開發(fā)流程)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包