Servlet

1、什么是Servlet:Servlet是运行在服务端,用来响应客户端请求的对象,这种对象称之为Servlet。

1.1、创建Servlet

网站目录结构:

第一个Servlet程序

java 复制代码
package servlet;

import java .io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;

@WebServlet(name="firstServlet",urlPatterns={"/firstServlet"})
public class FirstServlet extends HttpServlet
{
    private static final long serialVersionUID=1L;
    public void init(ServletConfig config) throws ServletException{
        super.init(config);
    }

    public void service(HttpServletRequest request,HttpServletResponse response) throws IOException{
        response.setContentType("text/html;charset=utf8");
        PrintWriter out =response.getWriter();
        out.print("<html><body>");
        out.print("第一个servlet对象");
        out.print("</html></body>");
    }
}

编译Servlet 命令:javac -encoding utf8 -cp web-inf/lib/servlet-api.jar; -d web-inf/classes servlet/FirstServlet.java

1.2使用web.xml部署servlet

1.3使用注解类WebServlet部署servlet

运行结果:

解决前面Servlet编译器报红问题:

练习:

网站目录结构:

Computer.java

java 复制代码
package servlet;

import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;

@WebServlet(urlPatterns = {"/computer"})
public class Computer extends HttpServlet{
    public void init(ServletConfig config) throws ServletException{
        super.init(config);
    }

    public void service(HttpServletRequest request,HttpServletResponse response)throws IOException{
        response.setContentType("text/html;charset=utf8");
        PrintWriter out=response.getWriter();
        out.print("<html><body>");

        String length = request.getParameter("length");
        String width = request.getParameter("width");
        double area = 0;

        try{
            double length1=Double.parseDouble(length);
            double width1=Double.parseDouble(width);
            if(length1>=0&&width1>=0){
                out.print("<br>长是"+length1+"宽是"+width1+"矩形的面积:");
                out.print("<br>"+length1*width1);
            }else{
                out.print("<br>矩形的长和宽不能是负数");
            }

        }catch(NumberFormatException e){
            out.print("<H1>请输入数字字符</H1>");
        }
        out.println("</body></html>");
    }

    
}

编译Servlet 命令:javac -encoding utf8 -cp web-inf/lib/servlet-api.jar; -d web-inf/classes servlet/Computer.java

example5_1.jsp

java 复制代码
<%@page language="java" contentType="text/html;charset=utf8"%>
<html>
    <body>
        <font size="3">
            <form action="computer" method="post">
            <br>请输入矩形的长:
            <input type ="text" name="length"/>
            <br>请输入矩形的宽:
            <input type ="text" name="width"/>
            <br>
            <input type="submit" value="提交"/>
            </form>
        </font>

    </body>
</html>

运行结果:

ShowLetter.java

java 复制代码
package servlet;

import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;

@WebServlet(urlPatterns = {"/letter"})
public class ShowLetter extends HttpServlet {
    public void init(ServletConfig config) throws ServletException{
        super.init(config);
    }
    public void service(HttpServletRequest request,HttpServletResponse response)throws IOException{
        response.setContentType("text/html;charset=utf8");
        PrintWriter out=response.getWriter();
        out.print("<html><body>");
        out.print("<br>小写字母:");
        for(char c='a';c<='z';c++){
            out.print(" "+c);
        }

        out.print("<br>大写字母:");
        for(char c='A';c<='Z';c++){
            out.print(" "+c);
        }
        out.println("</body></html>");
    }
    
}

编译Servlet 命令:javac -encoding utf8 -cp web-inf/lib/servlet-api.jar; -d web-inf/classes servlet/ShowLetter.java

example5_2.jsp

java 复制代码
<%@page language="java" contentType="text/html;charset=utf8"%>
<html>
<body>
<font size=3>
单击超链接查看英语字母表:
<br><a href="letter">查看英语字母表</a>
</font>
</body>
</html>

运行结果:

相关推荐
Bella_chene1 天前
IDEA中无法使用JSP内置对象
java·servlet·intellij-idea·jsp
Zz_waiting.2 天前
Javaweb - 10.4 ServletConfig 和 ServletContext
java·开发语言·前端·servlet·servletconfig·servletcontext·域对象
Zz_waiting.3 天前
Javaweb - 10.3 Servlet 生命周期
servlet
凌辰揽月3 天前
Servlet学习
hive·学习·servlet
真实的菜4 天前
Jenkins 插件深度应用:让你的CI/CD流水线如虎添翼 [特殊字符]
servlet·ci/cd·jenkins
天天爱吃肉82184 天前
ZigBee通信技术全解析:从协议栈到底层实现,全方位解读物联网核心无线技术
python·嵌入式硬件·物联网·servlet
Zz_waiting.5 天前
Javaweb - 10.1 Servlet
servlet·tomcat·javaweb
真实的菜5 天前
Jenkins生态与拓展:构建现代化DevOps工具链的终极指南
servlet·jenkins·devops
编程乐学(Arfan开发工程师)15 天前
73、单元测试-断言机制
服务器·数据库·servlet·单元测试·sqlite·log4j·mybatis
程序员的世界你不懂17 天前
将生成的报告通过jenkins发送邮件通知
java·servlet·jenkins