servlet基础

Posted esc_ai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet基础相关的知识,希望对你有一定的参考价值。

一、servlet简介

Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。

servlet本质上是一个特殊java类,需要遵循servlet规范,比如servlet没有main方法,servlet和http协议联系紧密。

二、在eclipse中创建servlet

新建一个dynamic web project,src目录下新建包,然后新建一个HelloworldServlet.java类.

2.1继承HttpServlet类:

package ucas.ac.cn.servlet;
import javax.servlet.http.HttpServlet;

public class HelloworldServlet extends  HttpServlet{

}

2.2添加doGet和doPost方法

在eclipse中,单击鼠标右键->source->Override/Implement methods,然后选择doGet和doPost方法.
技术分享

2.3登录示例

做一个用户登录的例子,用户在客户端提交用户名和密码后,HelloworldServlet去处理用户参数,根据处理结果转发到不同的页面.

2.3.1新建login.jsp

首先在webContent/12目录下添加login.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login</title>
</head>
<body>
    <form action="" method="post">
        用户名:<input type="text" name="userName"><br> 密码:<input
            type="password" name="passWord"><br> <input
            type="submit" value="登录"><br>
    </form>
</body>
</html>

现在action地址为空,当点击登录按钮后我们希望一个servlet去处理用户提交的用户名和密码,下面在配置servlet路径。

2.3.2配置web.xml

  <servlet>
    <servlet-name>HelloworldServlet</servlet-name>
    <servlet-class>ucas.ac.cn.servlet.HelloworldServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>HelloworldServlet</servlet-name>
      <url-pattern>/Helloworld</url-pattern>
  </servlet-mapping>

<servlet></servlet>中有两个属性,第一个是servlet-name,这个名字可以自定义,第二个是servlet-class,表示serlet-name所对应的java类的位置;<servlet-mapping></servlet-mapping>中也有2个属性,第一个servlet-name即为<servlet></servlet>中所定义的servlet的名字,第二个url-pattern为在浏览器中的访问名称,在这个实例中访问http://localhost:8080/工程名/Helloworld就会转到ucas.ac.cn.servlet包目录下的HelloworldServlet类。
修改logn.jsp:

<form action="../HelloworldServlet" method="post">

2.3.3编写doGet和doPost方法

在HelloworldServlet.java中编写处理用户名和方法的doGet和doPost方法:

package ucas.ac.cn.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloworldServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("userName");
        String password = req.getParameter("passWord");

        PrintWriter pw = resp.getWriter();
        pw.println(username);
        pw.println(password);
        pw.close();
    }

}

这样用户名和密码就被输出到浏览器。



以上是关于servlet基础的主要内容,如果未能解决你的问题,请参考以下文章

jsp基础语言-jsp代码段

JSP基础--JSP入门

[vscode]--HTML代码片段(基础版,reactvuejquery)

Servlet基础下

filter与servlet

java基础 第十四章(Servlet声明周期Servlet向jsp中提供数据Servlet跳转jspjsp中书写java代码)