实验内容
(1)掌握Tomcat服务器的基本配置
(1.1)掌握tomcat的安装和运行
官网下载完后,解压到本地如下图:
去apache-tomcat-9.0.16\bin路径下,双击startup.bat即可开启服务。可通过浏览器中输入localhost:8080访问,如果出现下面页面表示tomcat启动成功
(1.2)掌握tomcat端口号修改
在这个路径下apache-tomcat-9.0.16\conf找到server.xml文件,用记事本打开找到如下代码
<Connector port="8080" protocol="HTTP/1.1"
把8080改为8894,重新打开startup.bat文件,重启服务。出现如下提示表示启动成功。重新访问localhost:8080会发现已经无法访问,所以改为localhost:8894即可访问成功。
(2)在IDEA创建第一个Java Web工程
首先先新建一个java web项目
创建完成后,点击右上角的Add configuration,按以下步骤完成
在第四个步骤时,选择本地D:\apache-tomcat-9.0.16阿帕奇地址即可
再继续按下面步骤进行
这时候我们测试一下,在index.jsp文件里面写入hello world
这时候直接点击如下按钮,等一会,会自动弹出hello world。这样一个简单的hello world项目就完成了。
(3)使用Socket编写一个简单的HTTP服务器
先创建一个SimpleHttpServer类,把如下代码赋值到这个SimpleHttpServer类里面
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleHttpServer {
private static int port=81;
public static void main(String[] args) throws Exception{
//创建服务器套接字
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("服务器启动,等待客户连接。。。");
while(true){
Socket socket = serverSocket.accept();
System.out.println("一个新的连接:"+socket.getInetAddress()+":"+socket.getPort());
InputStream socketIn = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(socketIn));
OutputStream socketOut = socket.getOutputStream();
PrintWriter pw = new PrintWriter(socketOut,true);
char[] buf = new char[1024];
br.read(buf);
FileInputStream fileIn = null;
System.out.println(buf);
String request = new String(buf);
//读取http GET请求
//补充代码
//如果请求中包含long.html文件,则读取文件内容
//补充代码
String firstLineOfRequest=request.substring(0,request.indexOf("\r\n"));
if (firstLineOfRequest.indexOf("login.html")!=-1) {
fileIn=new FileInputStream("login.html");
byte[] bufFile=new byte[1024];
fileIn.read(bufFile);
fileIn.close();
String content=new String(bufFile);
System.out.println(content);
pw.println(content);
}
else {
StringBuffer sb=new StringBuffer();
sb.append("HTTP/1.1 404 OK\r\n");
sb.append("Content-Type:text/html\r\n\r\n");
sb.append("<Html>");
sb.append("<head>");
sb.append("</head>");
sb.append("<body>");
sb.append("<h1>404</h1>");
sb.append("</body>");
sb.append("</html>");
pw.println(sb.toString());
}
socket.close();
System.out.println("ok");
}
}
}
在web目录下创建login.html文件,输入如下代码
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>欢迎登陆</title>
</head>
<body>
<h1>用户登录</h1>
<hr/>
</body>
</html>
全部文件目录如下
全部写完后在下面的类里面,点击如下按钮
在IE浏览器分别测试如下(其实我也不太了解为啥谷歌浏览器一直测试不成功)
至此,已经实现了使用Socket编写一个简单的HTTP服务器。
(4)创建第1个Servlet程序
首先在jee.demo文件夹下面新建一个Servlet
新建完后发现有报错
这时候我们点开new下面的Project Structure点进Livraries,选择加号,点击java。
为了方便,选择apache-tomcat-9.0.16\lib下面的所有jar包
这时候一导入就会发现所有的错误都消失了,然后修改为如下代码
package jee.demo;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ServletTest")
public class ServletTest extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("This is a POST Methon");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("This is a POST Methon");
}
}
修改右上角位Tomcat运行,等到运行成功后,会自动刷出来一个页面,然后在此页面后面加上/ServletTest即可出现如下内容
至此已经创建成功第1个Servlet程序