【Java学习笔记】62:使用MyEclipse做Java Web开发的配置和流程

Java 专栏收录该内容
70 篇文章 2 订阅

Eclipse-jee还是不如MyEclipse好用,还是跟着课本用MyEclipse吧。JDK的配置不再赘述。

集成Tomcat

Window-Preferences-MyEclipse-Servers-Tomcat-Tomcat8.x下激活Tomcat8.x并提供安装路径:
这里写图片描述
展开Tomcat8.x,在JDK项中选择之前配置的额外下载安装的JDK:
这里写图片描述
集成好后,可以在此处运行测试:
这里写图片描述
后面的使用和Eclipse-jee里基本一致。

建立与MySQL的连接

在此处打开数据库浏览器模式:
这里写图片描述
在左侧DB Browser中右键-New一个数据库连接:
这里写图片描述
这里是可以点击Test Driver测试有没有连接成功的。

创建项目

File-NewProject或者Other里可以找到普通的Web Project
这里写图片描述
注意版本即可:
这里写图片描述

项目结构和demo

一个Java Web项目的典型结构是这样的:
这里写图片描述
按照课本上的例子写了一个测试程序,只是把SQL Server换成了MySQL,毕竟现在是在Deepin下学习了。

创建了数据库和测试表:

CREATE DATABASE TEST;
USE TEST;
CREATE TABLE userTable
(
id INT auto_increment PRIMARY KEY,
username VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL 
);
INSERT INTO userTable
VALUES(1,'lzh','123456');

编写代码,首先是src下建的org.esaybooks.test.jdbc包中的用来提供SQL服务的SqlSrvDBConn类:

package org.esaybooks.test.jdbc;
import java.sql.*;
public class SqlSrvDBConn {
    private Statement stmt;
    private Connection conn;
    ResultSet rs;

    public SqlSrvDBConn(){
        stmt=null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn=DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/TEST?useSSL=true&characterEncoding=utf8",
                    "root",
                    "3838438");
        }catch(Exception e){
            e.printStackTrace();
        }
        rs=null;
    }

    public ResultSet executeQuery(String sql){
        try{
            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            rs=stmt.executeQuery(sql);
        }catch(SQLException e){
            System.err.println("Data.executeQuery:"+e.getMessage());
        }
        return rs;
    }

    public void closeStmt(){
        try{
            stmt.close();
        }catch(SQLException e){
            System.err.println("Data.executeQuery:"+e.getMessage());
        }
    }

    public void closeConn(){
        try{
            conn .close();
        }catch(SQLException e){
            System.err.println("Data.executeQuery:"+e.getMessage());
        }
    }
}

JSP文件均放在WebRoot目录下,创建JSP文件时课本上直接选择了最纯粹的File,而不是JSP File,这个以后再研究有啥区别。

登录页面login.jsp:

<%@page language="java" pageEncoding="gb2312"%>
<html>
<head>
    <title>简易留言板</title>
</head>
<body bgcolor="#E3E3E3">
<form action="validate.jsp" method="post">
<table>
    <caption>用户登陆</caption>
    <tr>
        <td>用户名:</td>
        <td>
            <input type="text" name="username" size="20"/>
        </td>
    </tr>
    <tr>
        <td>密码:</td>
        <td>
            <input type="password" name="password" size="20"/>
        </td>
    </tr>
</table>
<input type="submit" value="登陆">
<input type="reset" value="重置">
</form>
如果没注册单击<a href="">这里</a>注册
</body>
</html>

验证页面validate.jsp:

<%@page language="java" pageEncoding="gb2312" import="java.sql.*" %>
<jsp:useBean id="SqlSrvDB" scope="page" class="org.esaybooks.test.jdbc.SqlSrvDBConn"/>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body>
    <%
        request.setCharacterEncoding("gb2312");
        String usr=request.getParameter("username");
        String pwd=request.getParameter("password");
        boolean validated=false;
        String sql="SELECT * FROM userTable;";
        ResultSet rs=SqlSrvDB.executeQuery(sql);
        while(rs.next())
        {
            if((rs.getString("username").trim().compareTo(usr)==0)
                && (rs.getString("password").compareTo(pwd)==0))
            {
                validated=true;
            }
        }
        rs.close();
        SqlSrvDB.closeStmt();
        SqlSrvDB.closeConn();
        if(validated)
        {
    %>
        <jsp:forward page="main.jsp"/>
    <%
        }
        else
        {
    %>
            <jsp:forward page="error.jsp"/>
    <%
        }
    %>
</body>
</html>

登录失败页面error.jsp:

<%@ page language="java" pageEncoding="gb2312"%>
<html>
<head>
    <title>出错</title>
</head>
<body>
    登录失败!单击<a href="login.jsp">这里</a>返回
</body>
</html>

登录成功的主页面main.jsp:

<%@ page language="java" pageEncoding="gb2312"%>
<html>
<head>
    <title>留言板信息</title>
</head>
<body>
    <%out.print(request.getParameter("username")); %>
    ,您好!欢迎登录留言板
</body>
</html>

还要把MySQL驱动再放一份到本工程/WebRoot/WEB-INF/lib/下,这也是我困惑的一个地方:
这里写图片描述
为了能从login.jsp开始,要修改WEB-INF文件夹下的web.xml配置文件,在下面可以切换成source源码方式:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>jsp_jdbc</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>

重点也就是在<welcome-file>这个双标签里,要改成启动的那个页面,删去不必要的<welcome-file>双标签。

部署和测试

Tomcat服务器是需要部署的,在这之前先确保关闭了Tomcat服务器。点击这里将项目部署到服务器:
这里写图片描述
这就用到了前面集成好的Tomcat8.x服务器,点击add按钮就可以部署到新的服务器上了:
这里写图片描述
部署完之后是这样的:
这里写图片描述
如果修改了项目,那么可以在这里点击Redeploy重新部署。

昨天老师讲了,对于部署完成的项目,可以在Tomcat安装目录下的webapps里看到对应的子目录:

root@hostlzh:/usr/local/software/apache-tomcat-8.5.29# ls
backup  lib  NOTICE     temp
bin LICENSE  RELEASE-NOTES  webapps
conf    logs     RUNNING.txt    work
root@hostlzh:/usr/local/software/apache-tomcat-8.5.29# ls webapps/
docs  examples  host-manager  jsp_jdbc  manager  ROOT

部署好以后,启动Tomcat服务器。在地址栏输入http://localhost:8080/项目名称/就可以测试了:
这里写图片描述
登录成功时:
这里写图片描述
登录失败时:
这里写图片描述

移除部署

部署和移除部署都应当在Tomcat服务器关闭的情况下执行。
在部署按钮打开的Project Deployments对话框里选中项目下部署好的Tomcat8.x服务器,点Remove就可以方便的移除。

移除以后,在Tomcat安装路径下的webapps目录下再看一下:

root@hostlzh:/usr/local/software/apache-tomcat-8.5.29# ls webapps/
docs  examples  host-manager  manager  ROOT

确实被移除了。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

LauZyHou

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值