java web实验一

基于IDEA2023.3.5版Tomcat11.0.0版

一、请按照以下要求创建Servlet01类。

    要求如下:

    (1)在Web项目中定义一个HelloWorldServlet类,其中定义了 init()、destroy()方法。

    (2)在service()、init()、destroy()三个方法中分别添加输出语句。

    (3)使用@WebServlet注解配置Servlet02的映射信息,并在tomcat服务器中部署该Web项目。

    (4)启动Tomcat服务器,使用浏览器访问Servlet01映射的url地址,观察控制台输出内容。

    (5)确保中文文本正常显示。

HelloWorldServlet类

package org.example.demo2;

import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServlet;

@WebServlet(name = "HelloWorldServlet",urlPatterns = "/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init method is called");
    }

    public void service(ServletRequest request, ServletResponse response)throws ServletException{
        System.out.println("Hello World");
    }

    public void destroy(){
        System.out.println("destroy method is called");
    }
}

Servlet01类

package org.example.demo2;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "Servlet01", urlPatterns = "/Servlet01")
public class Servlet01 extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
        PrintWriter out =response.getWriter();
        out.print("Hello Servlet");
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        PrintWriter out =response.getWriter();
        response.setContentType("text/html;charset=utf-8");
        out.print("Hello Servlet<br/>");
        out.print("中文");

    }
}

 运行结果:

二、请按照以下要求设计一个Servlet02类。

    要求如下:

    (1)在Web项目中创建Servlet02类,继承HttpServlet类,重写其doGet()和doPost()方法,并在这两个方法中分别编写输出不同内容的代码。

    (2)在项目的web目录下创建一个登陆页面login.html,采用post方式提交给Servlet02处理。

    (3)使用@WebServlet注解配置Servlet02的映射信息。

    (4)部署项目并启动Tomcat服务器,使用浏览器采用Get方式访问Servlet02映射的url地址,观察页面显示内容。

     (5)重新使用浏览器成功访问login.html页面后,提交表单,再次观察页面显示内容。

     (6)确保中文文本正常显示。

Servlet02类

package org.example.demo2;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "Servlet02",urlPatterns = "/Servlet02")
public class Servlet02 extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
        String name = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println("用户名:" + name);
        System.out.println("密 码:" + password);
        //获取参数名为“hobby”的值
        String[] hobby = request.getParameterValues("hobby");
        System.out.print("爱好:");
        for (int i = 0; i < hobby.length; i++) {
            System.out.print(hobby[i] + ",");
        }
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
        doGet(request,response);
    }
}

运行结果:

三、请按照以下要求设计一个向页面输出中文的类ChineseServlet。要求如下:

(1)创建一个ChineseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。

(2)在doGet()方法中,使用HttpServletResponse对象的setContentType()方法将浏览器编码改为utf-8。

(3)使用HttpServletResponse对象获取输出流,向浏览器输出“JavaWeb程序设计任务教程”的中文字样。

ChineseServlet类

package org.example.demo2;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "ChineseServlet", urlPatterns = "/ChineseServlet")
public class ChineseServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        response.setContentType("text/html;charset=utf-8");
        String data = "JavaWeb程序设计任务教程";
        PrintWriter out = response.getWriter();
        out.println(data);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        doGet(request,response);
    }
}

运行结果:

四、编写一个Servlet,实现统计网站被访问次数的功能。

要求如下
(1)新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法。
(2)在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet,使访问次数times加1。
(3)获取ServletContext,通过它的功能记住上一次访问后的次数。

ShowTimesServlet类

package org.example.demo2;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.ServletContext;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "ShowTimesServlet", urlPatterns = "/ShowTimesServlet")
public class ShowTimesServlet extends HttpServlet {

//    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取 ServletContext
        ServletContext context = getServletContext();

        // 获取当前的访问次数
        Integer times = (Integer) context.getAttribute("visitTimes");
        if (times == null) {
            times = 0; // 如果是第一次访问,则初始化次数为0
        }

        // 访问次数加1
        times++;

        // 将更新后的访问次数保存到 ServletContext 中
        context.setAttribute("visitTimes", times);

        // 输出访问次数到页面
        response.setContentType("text/html");
        response.getWriter().println("<h1>网站被访问次数:" + times + "</h1>");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 在 doPost 方法中调用 doGet 方法
        doGet(request, response);
    }


}

运行结果:

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值