JavaWeb实训项目:网上购书城平台系统

文章目录

  • JavaWeb实训项目:网上购书城平台系统
    • 部署Tomcat服务器
      • 简介:
      • Tomcat下载及配置
        • 设置Tomcat热部署
        • 修改Tomcat终端窗口的名字
        • Tomcat终端乱码问题
      • Tomcat初步使用
    • IDEA创建Maven项目
      • 流程
      • IDEA 配置Tomcat
      • 测试
      • welcome-file-list设置与url-pattern匹配规则
    • MYSQL8配置
      • MYSQL远程连接

JavaWeb实训项目:网上购书城平台系统

这是应付学校实训写的辣鸡项目,用的是Servlet+JSP这样过时的技术。。。无聊的话可以看下,源码链接:here

部署Tomcat服务器

简介:

Tomcat目录结构
bin 一些启动/关闭脚本,运行Tomcat的可执行程序和相关内容
conf Tomcat服务器的配置文件,包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xml
lib Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar包。unix平台此目录下的任何文件都被加到Tomcat的classpath中
logs Tomcat的日志文件
temp 存放临时文件
webapps 默认的站点根目录(可以更改)。当发布web应用时,默认情况下把web文件夹放于此目录下
work Tomcat自动生成,用于在服务器运行时过度的临时文件,就是存储jsp、servlet翻译、编译后的结果。如在Tomcat运行时删除此目录,JSP页面将不能运行, jsp生成的sevlet放在此目录下

Tomcat常用端口号 (ps:修改了这三个端口号,就可以在一台主机上启动多个Tomcat了
8005 Tomcat 监听的关闭端口
8080 Tomcat的服务端口
8009 接受其他服务器转发过来的请求

如果你想要运行多个Tomcat,就修改其他Tomcat的端口号使之不重复即可
修改文件位置:apache-tomcat-9.0.21\conf\server.xml
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

Tomcat环境编码设置(可选)

还是上面那个文件,添加内容:URIEncoding="UTF-8"
在这里插入图片描述

Tomcat下载及配置

A p a c h e Apache Apache的官方网站下载Tomcat。下载最新的解压版本后,本地直接解压即可。建议下载8或9版本。

配置环境变量:

J D K JDK JDK的环境变量默认大家都配置好了。

T o m c a t Tomcat Tomcat的环境变量:变量名:CATALINA_HOME,变量值(你的解压目录):E:\ashixun\apache-tomcat-9.0.21

启动Tomcat:

在目录apache-tomcat-9.0.21\bin下双击startup.bat文件或者命令行输入startupstart tomcat9.exe或者catalina run都可以。

输入网址:localhost:8080看是否启动成功,成功界面如下:

JavaWeb实训项目:网上购书城平台系统_第1张图片

设置Tomcat热部署

如何我们修改了 c l a s s class class文件,可以让 T o m c a t Tomcat Tomcat自动重启生效;

修改文件位置:apache-tomcat-9.0.21\conf\server.xml

内部添加标签:

docBase:项目路径,可以使用绝对路径或相对路径,相对路径是相对于 w e b a p p s webapps webapps
path:访问项目的路径
reloadable:是否自动加载新增或改变的 c l a s s class class文件
debug:属性与这个 E n g i n e Engine Engine关联的 L o g g e r Logger Logger记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为0。 也就是程序异常时写入日志文件里的详细程度。

修改Tomcat终端窗口的名字

文件位置:apache-tomcat-9.0.21\bin\catalina.bat
JavaWeb实训项目:网上购书城平台系统_第2张图片

Tomcat终端乱码问题

问题原因在tomcat默认是UTF-8编码,而win的终端默认是GBK编码。

解决:找到如下logging.properties文件,将第51行的控制台UTF-8编码改为GBK即可。

JavaWeb实训项目:网上购书城平台系统_第3张图片
在这里插入图片描述

Tomcat初步使用

参考:purplestone,http简介,其他

点击以下超链接,出现登录窗口,然后点击取消。

JavaWeb实训项目:网上购书城平台系统_第4张图片
JavaWeb实训项目:网上购书城平台系统_第5张图片
会弹出这个页面,复制以下代码到comf/tomcat-users.xml,再进行登录即可进入管理页面。
JavaWeb实训项目:网上购书城平台系统_第6张图片



可以看到当前有哪些项目部署在tomcat ,也可以从这里进入某个项目中http://localhost:8080/manager/html
JavaWeb实训项目:网上购书城平台系统_第7张图片

IDEA创建Maven项目

流程

新建 M a v e n Maven Maven项目,那个create from archetype暂时不用选。

JavaWeb实训项目:网上购书城平台系统_第8张图片
G r o u p I d GroupId GroupId(一般是公司域名的倒写)和 A r t i f a c t I d ArtifactId ArtifactId(一般是你的项目名字)被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到 m a v e n maven maven本地仓库去,你想要找到你的项目就必须根据这两个 i d id id去查找。在这里插入图片描述

添加 w e b a p p webapp webapp项目,右键项目Add Framework Support

JavaWeb实训项目:网上购书城平台系统_第9张图片
JavaWeb实训项目:网上购书城平台系统_第10张图片

然后就出现了一个web项目如下:

JavaWeb实训项目:网上购书城平台系统_第11张图片

IDEA 配置Tomcat

点击界面Run,然后选择Run...,再点Edit Configurations...

JavaWeb实训项目:网上购书城平台系统_第12张图片JavaWeb实训项目:网上购书城平台系统_第13张图片
(你的应该不会显示bookcity这一项的,因为我之前编辑过所以有,你执行完以下步骤就有了)

然后点+号,找到最下面的Tomcat Server

先选中你的服务器,然后修改URL,设置项目发布路径,即虚拟路径。

JavaWeb实训项目:网上购书城平台系统_第14张图片

点击Deployment,注意保持Application context内容和前面虚拟路径内容相同,我这里都是bookcity
JavaWeb实训项目:网上购书城平台系统_第15张图片
确认后返回。点击界面Run,然后选择Run...,再点bookcity运行,默认浏览器就会打开一个界面,显示index.jsp的网页效果。
JavaWeb实训项目:网上购书城平台系统_第16张图片
JavaWeb实训项目:网上购书城平台系统_第17张图片
需要注意的是此时发布的 w e b web web项目其目录为localhost:8080/bookcity,而项目的根目录即localhost:8080 T o m c a t w e b a p p s Tomcat webapps Tomcatwebapps中自带的 R O O T ROOT ROOT项目,具体原因涉及到 T o m c a t Tomcat Tomcat的配置文件。

测试

src->main->java下新建一个包com.demo.servlet ,然后在此包下新建一个HelloServlet

首先让HelloServlet 类继承HttpServlet
JavaWeb实训项目:网上购书城平台系统_第18张图片
不出意外应该idea不会给你自动补全·HttpServlet·这个类并且还会报错。

因为这个项目没有导入对servlet支持的jar包。

M a v e n Maven Maven项目的方便就在于他可以自动帮你导入各种你需要jar包!

你只需导入相应的代码即可,查询jar包对应代码的网站:here


        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
    

将代码复制到pom.xml文件即可:
JavaWeb实训项目:网上购书城平台系统_第19张图片
下面是web.xml的内容,配置 web.xml 后,才能让别人调用:


<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">
    <display-name>bookcitydisplay-name>
    <servlet>
        <servlet-name>HelloServletservlet-name>
        <servlet-class>com.demo.servlet.HelloServletservlet-class>
    servlet>
    <servlet-mapping>
        <servlet-name>HelloServletservlet-name>
        <url-pattern>/hellourl-pattern>
    servlet-mapping>
web-app>

下面是HelloServlet的完整内容:

/**
 * Copyright (C), 2018-2019, csust
 * FileName: HttpServlet
 * Author:   Cwolf9
 * Date:     2019/06/18 16:06
 * Description:
 * History:
 * <author>          <time>          <version>          <desc>
 * Cwolf9           2019/06/18           2018.3
 * <p>
 * 〈可怕的是比你强的人比你还努力〉
 * 〈〉
 *
 * @author Cwolf9
 * @create 2019/06/18
 * @since 1.0.0
 */
/**
 * 〈可怕的是比你强的人比你还努力〉
 * 〈〉
 *
 * @author Cwolf9
 * @create 2019/06/18
 * @since 1.0.0
 */
package com.demo.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        try {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html; charset=utf-8");
            response.setCharacterEncoding("UTF-8");
            String userId = request.getParameter("userId");
            String pwd = request.getParameter("pwd");
            if("admin".equals(userId) && "password".equals(pwd)){
                out.println("success");
            }else{
                out.println("fail");
            }
            out.println("<br/>");
            String servletPath = this.getServletContext().getRealPath("/");
            out.println(servletPath);
            out.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
    }
}

启动服务器,然后访问:http://localhost:8080/bookcity/hello ,页面如下:
JavaWeb实训项目:网上购书城平台系统_第20张图片
按照HelloServlet 中的写法,你应该这么访问:http://localhost:8080/bookcity/hello?userId=admin&pwd=password,这样返回的页面就是success:
JavaWeb实训项目:网上购书城平台系统_第21张图片

welcome-file-list设置与url-pattern匹配规则

https://blog.csdn.net/qq_15237993/article/details/72868089

https://blog.csdn.net/xybz1993/article/details/81023955


MYSQL8配置

创建用户create user 'xxx'@'%' identified by 'xxx';

赋予权限:grant all privileges on *.* to xxx@"%";

使之生效:flush privileges;

修改密码:alter user'xxx'@'%' IDENTIFIED BY '1234567';

删除用户:drop user'xxx';

MYSQL远程连接

要让别人能远程连接你本地的数据库,你们得在同一个局域网下,其次你要开放你的一个端口。

windows查看端口命令:netstat -an,netstat -ano,netstat -an|findstr "3306"

linux查看端口:nmap -sP ip地址,lsof -i:8000

win开放端口:

win+s搜索:高级,点进去设置一个出站规则,创建类型选择端口,然后设置TCP端口3306,规则名叫3306in,保存即可。

JavaWeb实训项目:网上购书城平台系统_第22张图片


搞完这些同局域网下的其他人应该就可以通过你的ip地址和端口连接上你本机的数据库了。

Host填你想连接的主机的ip地址

User填其数据库的一个账户名

Password填密码

点击Test Connection查看是否成功。

JavaWeb实训项目:网上购书城平台系统_第23张图片

你可能感兴趣的:(Java)