使用IDEA创建JavaWeb项目并部署Tomcat
首先,点击File新建project取名字为HelloWorld
然后,在文件处右键Add Framework Support勾选Web Application
简单修改web下的index.jsp,将""里的内容改为HelloWorld(则浏览器访问该文件时会显示HelloWorld),利用Tomcat进行访问
点击上方有Edit Configuration,点击左方的加号找到Tomcat,点击local,在右方Server中Application server中找到Tomcat的地址,然后点击Deployment,点击右边下方的加号,点击artifact,出现HelloWorlf:war exploded,点击apply,ok
点击run
目录中出现out

Web项目目录机构

idea java发布iis发布程序 idea部署java项目_System


WEB-INF(此文件夹下面的文件不能通过浏览器访问,这个文件夹以外的文件是可以通过浏览器进行访问的)

修改web中的index.jsp中的内容
右键web创建一个html文件,修改title和内容,点击运行
在此网址基础上添加hello.html即可访问该文件的html文件

编写第一个servlet
右键src新建一个package(servlet包)暂时取名为net_zixue.servlet
再在该包里新建一个Java Class,暂时取名为HelloServlet

  1. 继承httpservlet
  2. 复写doGET(),doPost()方法
    -“sout+回车”即为输出的方法
    此时已经写好了一个servlet
package net_zixue.servlet;

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 HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接收到get请求");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接收到get请求");
    }
}

配置一个web.xml文件(在web/WEB-INF/web.xml)
首先,配置一个servlet标签
servlet-name取名叫helloServlet
servlet-class标签,自动补全前面的类名net_zixue.servlet.HelloServlet
servlet-mapping里面的name要与class的name相同
url是我们访问时访问的名称,里面一定要带“/”
·tomcat根据web里面的class文件来查找servlet
·servlet标签是用来注册一个servlet的
·urlpattern是我们访问的一个路径名
部署并访问:
Edit Configuration—>deployment—>修改application context,后面加一个项目的名(此时为hello),通过ip地址+端口号+项目名来访问web项目,运行部署
在原有地址的基础上加上hi
idea控制台会显示“接收到get请求”,则访问成功

<?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>helloServlet</servlet-name>
    <servlet-class>net_zixue.servlet.HelloServlet</servlet-class>
</servlet>

    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern>/hi</url-pattern>
    </servlet-mapping>
</web-app>

使用Servlet3.0创建Servlet
查看JavaEE6以上的版本
在项目的包上(net_zixue.servlet)右键new---->servlet
urlPatterns = "/test"注意要有“/”
在doget下打System.out.println(“testServlet收到了请求”);
部署运行
在之前的网页链接最后的“/hi”改为“/test”,idea接受台会显示“testServlet收到了请求”

HttpServletRequest获取请求行和请求头
获取请求行
在HelloServlet中的doGet中添加一些方法,然后部署运行,在原有网址上加hi,idea控制台返回相应信息
请求头
req.getHeaderNames()然后在括号的位置“art+enter”添加一个本地变量
while(headerNames.hasMoreElements())
String element = headerNames.nextElement();取到其中的每一个元素
打印一下element
在访问一下浏览器
就把请求头都打印出来了

package net_zixue.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.util.Enumeration;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接收到get请求");
        System.out.println("请求方式:"+req.getMethod());
        System.out.println("URL:"+req.getRequestURI());
        System.out.println("发出请求客户端IP地址:"+req.getRemoteAddr());
        System.out.println("服务点接收请求的IP地址:"+req.getLocalAddr());
        System.out.println("访问客户端的端口号:"+req.getRemotePort());
        System.out.println("web应用路径:"+req.getContextPath());
        System.out.println("http协议和版本:"+req.getProtocol());
        Enumeration<String> headerNames = req.getHeaderNames();
        while(headerNames.hasMoreElements()){
            String element = headerNames.nextElement();
            System.out.println(element);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接收到get请求");
    }
}

打印请求头的值
System.out.println(element+":"+req.getHeader(element));
再访问浏览器
idea控制台显示相应信息

package net_zixue.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.util.Enumeration;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接收到get请求");
        System.out.println("请求方式:"+req.getMethod());
        System.out.println("URL:"+req.getRequestURI());
        System.out.println("发出请求客户端IP地址:"+req.getRemoteAddr());
        System.out.println("服务点接收请求的IP地址:"+req.getLocalAddr());
        System.out.println("访问客户端的端口号:"+req.getRemotePort());
        System.out.println("web应用路径:"+req.getContextPath());
        System.out.println("http协议和版本:"+req.getProtocol());
        Enumeration<String> headerNames = req.getHeaderNames();
        while(headerNames.hasMoreElements()){
            String element = headerNames.nextElement();
            System.out.println(element+":"+req.getHeader(element));
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接收到get请求");
    }
}

获取请求参数
现在out中的HelloWorld_war_exploded文件下新建一个html取名为get

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<h2>发起HTTP get请求</h2>
<form action="hi" method="get">
    <p>账号:<input type="text" name="name" /></p>
    <p>密码:<input type="text" name="passWord" /></p>
    <input type="submit" value="提交" />
</form>

</html>

通过hi访问HelloServlet
请求方式是get
部署运行
访问浏览器,在原有网址下添加get.html
然后在sevlet中获取一下请求参数