中软实习培训记录二(0721)

一、Tomcat的下载安装

1、进入Apache Tomcat官网,选择你需要的版本进行下载:
地址http://tomcat.apache.org/download-70.cgi

2、下载完毕后,将解压后的文件夹放到用户的资源库中:
finder=》用户=》用户名=》资源库

3、在终端进行操作

sudo chmod 755 Library/tomcat/bin/*.sh

sudo sh startup.sh

上述两个指令分别是分配权限,并对tomcat进行启动,并且启动sh文件前,要先进入文件所在文件夹,不然会出错
在这里插入图片描述
启动完毕后,在safari中访问网址http://localhost:8080/,如果能正常打开tomcat首页,说明tomcat 配置启动成功,最后通过命令进行关闭即可:

sh shutdown.sh

二、Java Enterprise ——登陆跳转 demo

1、创建一个Java Enterprise新项目,在创建时注意勾选Web Application,同时注意选用Application Server为之前下载的Tomcat server
在这里插入图片描述

2、next,填写项目名,完成创建在这里插入图片描述

3、项目创建完毕后,考虑到要实现的demo要求,首先要加入一个lib目录,方便后续加入jar包
在这里插入图片描述

4、按照前一日添加jar包的步骤,在讲jar包复制粘贴到lib文件夹之后,需要右击,选择“add as library”,成功添加
在这里插入图片描述

5、添加完毕后,打开file=》project structure,在artifacts里面可以看到添加成功的两个包,截图如下,若没有正常出现,界面下方会有信息提示,选择“Fix”,选择“add all missing……”即可
在这里插入图片描述

6、在src下面事先创建下属文件夹,方便之后代码归类,更加清晰
在这里插入图片描述
不同的目录有着不同的意义
dao:与数据库有直接的操作
model:定义实体类
service:负责处理业务逻辑
servlet:拦截业务请求
util:工具类

7、首先进行数据库部分的连接操作,此部分在util工具类中进行:
在这里插入图片描述

package com0721.util;

import java.sql.*;

public class DBUtil {
    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test0720?userSSL=false", "root", "1234567890");
        return conn;

    }
    public static void closeAll(ResultSet rs,Statement state,Connection conn) throws SQLException {
        if(rs!=null){
               rs.close();
        }
        if(state!=null){
            state.close();

        }
        if(conn!=null){
            conn.close();

        }

    }

}

7、现在对Model目录下的实体类进行设计
对于我们所要实现的登陆界面来说,首先必要的就是user,每一个user都包括了id、name、password,age为新增的属性,在设置时,设置其为私有,因此需要添加getter and setter函数,方便之后进行调用(可用快捷键进行添加,windows是alt+insert,macOS是command+N)

package com0721.model;

public class User {
    private int id;
    private String name;
    private  String password;
    private String age;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

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

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

最后添加getter and setter之后,还有添加toString函数,同样可以通过上述快捷键得到:

@Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", age='" + age + '\'' +
                '}';
    }

8、编者习惯于从底层网上写,因此在成功完成数据库完结、实体类设计之后,开始着手dao部分,也就是数据库处理部分

数据库表中内容:
在这里插入图片描述

对于本次demo要实现的登陆系统,设计思路主要是根据用户输入的用户名,在数据库中进行搜索比对,若有对应的数据项,则数据库会将该项进行return,返回后,将密码与输入的进行比较,相等则登陆成功。

package com0721.dao;

import com0721.model.User;
import com0721.util.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDao {
    public User selectByName(String name){
        ResultSet rs=null;
        Connection conn=null;
        PreparedStatement pstmt=null;
        DBUtil util=new DBUtil();
        User user=new User();
        try{
            conn=util.getConnection();
            pstmt=conn.prepareStatement("select * from test1 where name = ?");
            pstmt.setString(1,name);//传入数据,1表示第一个?的位置为name
            rs=pstmt.executeQuery();
            while (rs.next()){
                user.setId(rs.getInt(1));
                user.setName(rs.getString(2));
                user.setPassword(rs.getString(3));
                user.setAge(rs.getString(4));
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            try {
                util.closeAll(rs,pstmt,conn);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return user;
    }
}

9、完成数据库操作后,就可以开始写业务逻辑部分了,在service处,创建UserService类

package com0721.service;

import com0721.dao.UserDao;
import com0721.model.User;

public class UserServer {
    UserDao userDao=new UserDao();

    public User selectByName(String name){
        return userDao.selectByName(name);
    }
}

10、在serlvet目录处,新建类JavaClass,servlet有两种实现方式,一种是继承HttpServlet类

public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name=req.getParameter("name");
        String password=req.getParameter("password");
    }
}

其中的数据,有界面传输过去,因此需要修改原有的index.jsp文件,对界面进行设计
在此之外,需要在lib中再导入一个包:servlet-api.jar,该包可以直接在Tomcat安装包的lib文件夹中找到
在这里插入图片描述
在这里插入图片描述

11、index.jsp中具体对界面进行简单的设计,包括了两个输入框,以及提交按钮:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <h1>登陆界面</h1>
    <form action="/login" method="post">
      name:<input name="name" type="text">
      password:<input name="password" type="password">
      <input type="submit" value="登陆">
    </form>>

  </body>
</html>

12、重新回到serlvet部分,原先仅仅是设定了两个参数,因此接下来进行一个处理,即判断输入内容是否与数据库的一致:

public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        UserServer userService=new UserServer();

        String name=req.getParameter("name");
        String password=req.getParameter("password");

        User user= userService.selectByName(name);
        if(password.equals(user.getPassword())){
            resp.getWriter().write("Success");
            
        }else{
            resp.getWriter().write("Failed");
        }
    }
}

13、接下来配置web.xml,其中包括了请求路径

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>loginServlet</servlet-name>
        <servlet-class>com0721.servlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>loginServlet</servlet-name>
        <url-pattern>/login</url-pattern>

    </servlet-mapping>


</web-app>

14、运行,自动得到界面
在这里插入图片描述

根据数据库中的信息,输入,显示登陆成功
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值