一、安装步骤
Tomcat官方站点:
http://tomcat.apache.org
1、进入官方网站后获取安装包:
🤠tar.gz文件是Linux操作系统下的安装版本
🤠zip文件是Windows系统下的压缩版本
2、解压安装
解压到自己的文件夹中
3、安装JDK
设置环境变量
设置JAVA_HOME环境变量
设置Path环境变量
4、在TomCat的bin目录中找到startup.bat
显示以下黑框则成功安装(如果只是闪一下,则要重新设置环境变量)黑框打开表示服务器打开
黑框关闭表示服务器关闭
5、在浏览器中打开127.0.0.1:8080跳转到TomCat网站
完成以上步骤,Tomcat安装成功。
二、修改服务器Tomcat端口号
打开conf文件找到server.xml文件,用Notepad++打开,找到8080端口号修改它,只要不超过范围即可,最好用4位数的端口号。
三、web开发环境搭建
重写下面三个方法,以及一个无参构造方法
package com.ffyc.dormServer.web;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
/*1、接收请求中的数据
* 2、调用其他的Java程序处理
* 3、向前端做出响应*/
public LoginServlet(){
/*
无参构造方法,默认时存在的,初始化创建的对象
只被调用一次(始终只创建了一个对象),在第一次访问servlet程序时由服务器创建执行
*/
System.out.println("无参的构造方法");
}
/*
init()初始化 在构造方法执行完成后,立即被调用执行,完成一些servlet程序的初始化
例如(读取配置文件的参数)
只执行一次
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init");
}
/*
service()用来接收前端请求,为前端提供服务的,
每次前端发送的请求,都会调用service(),多次调用
HttpServletRequest req:表示请求对象,前端提交过来的所有数据,都由服务器封装在此对象
HttpServletResponse resp:表示响应对象,响应前端数据
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service");
}
/*
destroy()
销毁
服务器关闭,要执行的一些操作,就可以在这里执行
*/
@Override
public void destroy() {
System.out.println("destroy");
}
}
在web.xml中配置Servlet
<?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">
<!--
.xml文件:ml结尾的,也是一种标记语言,设计的目的是用来在项目中存储项目中的配置信息,
制定好可以使用那些标签
web.xml:存储web后端项目配置信息,
在服务器启动时,由服务器加载读取
-->
<!--
配置Servlet,把我们开发的servlet程序注册到服务器,由服务器启动时加载,第一次加载时,由服务器创建对象
-->
<!--注册登录处理的Servlet-->
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.ffyc.dormServer.web.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name><!--为指定name的servlet程序配置访问地址-->
<url-pattern>/login</url-pattern><!--配置的供外界访问的地址,必须 / 开头-->
</servlet-mapping>
</web-app>
开发环境搭建完成
四、一个简单的前后端的交互示例
用Hbuilder X写一个表单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
从前端向后端发送请求 都是http请求
http请求只能发送 超文本内容
http请求包含请求行、请求头、请求体部分
请求行、请求的方式,请求的资源地址等等
请求头、包含客户端的一些环境信息,这些信息都是由浏览器自动发出的,以键值形式传递
请求体:代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递
get请求:主要是从后端获取信息的,例如网页上的超链接,向后端传递少量信息,获得大量信息
请求数据直接在请求地址中拼接,所有传输的数据量有限,并且数据敏感不安全
post请求:主要用于向后端发送大量数据
请求数据在请求体中,可以传输大量数据,不在地址中显示,数据也安全
-->
<form action="http://127.0.0.1:8088/domServer/login" method="post">
账号:<input type="text" name="account" value=""/> <br />
密码:<input type="password" name="password" value=""/> <br />
<input type="submit" value="登录"/>
</form>
</body>
</html>
因为在后端处理get和post时会有不同,所以有了doget 和dopost俩个方法分别处理
package com.ffyc.dormServer.web;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
//默认无参构造存在
//init()在没有初始化操作时,可以不用重写,但是服务器会调用父类发init()方法
/*@Override
public void init() throws ServletException {
super.init();
}*/
/*
由于前端请求有get和post俩种,在后端的处理上有点不同
所以在父类的service方法中,会根据请求方式的不同,调用doget或者dopost方法分别处理
*/
/* @Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("执行登录处理");
//接收前端提交的数据
String account=req.getParameter("account");
String password=req.getParameter("password");
System.out.println(account);
System.out.println(password);
}*/
/*
处理get请求
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("get请求");
String name=req.getParameter("name");
String age=req.getParameter("age");
System.out.println(name);
System.out.println(age);
}
/*
处理post请求
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("post请求");
//设置解码的编码
req.setCharacterEncoding("utf-8");
String account=req.getParameter("account");
String password=req.getParameter("password");
System.out.println(account);
System.out.println(password);
}
//destroy(),没有最终执行的操作时,也可以不用重写,但是服务器会调用父类的destroy()
/*@Override
public void destroy() {
super.destroy();
}*/
}