记录创建Webservlet工程-Servlet

如果想要局域网可以访问到tomcat需要

 

1.引入以下jar,可从tomcat的安装目录lib里找到

2.创建自己的servlet实现Servlet接口

@WebServlet(name = "getServletName", urlPatterns = { "/login" },
initParams = {@WebInitParam(name = "name",value = "maozi")}
)
MyServlet implements Servlet {

在类上采用注解方式 可以不用web.xml注册使用servlet;

注解使用方法

name = "getServletName" 表示ServletConfig获取名

urlPatterns = { "/login" } 表示方法途径,在网页上进行网址拼接

initParams = {@WebInitParam(name = "name",value = "maozi")} 表示携带参数

顺序和途径是:本项目--》 tomcat --》 向网页

//主要通过方法进行与网页的互动
public void service(ServletRequest request,
                    ServletResponse response) throws ServletException,
        IOException {
}

其中ServletRequest为请求,可从此实例获取到请求信息

ServletResponse为请求响应,可以从此实例进行网页内容修改及展示

3.使用HttpServlet

HttpServlet类覆盖了javax.servlet.GenericServlet类。使用HttpServlet时,还要借助分别代表Servlet请求和Servlet响应的HttpServletRequest和HttpServletResponse对象。HttpServletRequest接口扩展javax.servlet.ServletRequestHttpServletResponse扩展javax.servlet.ServletResponse,是请求交互主要使用的Servlet

使用时需要明白HttpServlet通过对Servlet的service方法进行优化,使其变得简便,也从接口的形式变为了继承类。不需要实现众多方法,只需要直接使用以下方法之一:doGet、doPost、doHead、doPut、doTrace、doOptions和doDelete。其方法参数返回为HttpServletRequest request, HttpServletResponse response(HTTP环境中的Servlet请求,HTTP环境中的Servlet响应)

例:

@Override
public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
        throws ServletException, IOException {
    RequestDispatcher dispatcher=request.getRequestDispatcher("/WEB-INF/form_http.html");
    dispatcher.forward(request, response);
}
//如果在网页或请求中有对相同路径的返回请求 也会通过 此类 的其他对应方法
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();
    writer.println("<html>");
    writer.println("<head>");
    writer.println("<title>" + TITLE + "</title></head>");
    writer.println("</head>");
    writer.println("<body><h1>" + TITLE + "</h1>");
    writer.println("name:" + request.getParameter("name") + "</br>");
    writer.println("name:" + request.getParameter("address") + "</br>");
    writer.println("name:" + request.getParameter("deliveryMethod") + "</br>");
    writer.println("name:" + request.getParameter("instruction") + "</br>");
    writer.println("name:" + request.getParameter("checkbox") + "</br>");
    writer.println("name:" + request.getParameter("reset") + "</br>");
    writer.println("name:" + request.getParameter("submit"));
    writer.println("</body>");
    writer.println("</html>");

}

form_http.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<br>
<form method='post'>
    <input name='name'/>
</br>
    <textarea name='address' cols='40' rows='5'></textarea>
</br>
    <select name='country'>");
        <option>United States</option>
        <option>Canada</option>
    </select>
</br>
    <input type='radio' name='deliveryMethod' value='First Class'/>
</br>
    <input type='radio' name='deliveryMethod' value='Second Class'/>
</br>
    <textarea name='instruction' cols='40' rows='5'></textarea>
</br>
    <textarea name='instruction' cols='40' rows='5'></textarea>
</br>
    <input type='checkbox' name='catalogRequest'/>
</br>
    <input type='reset'/>
</br>
    <input type='submit'/>
</form>
</body>
</html>

4:通过web.xml部署

<servlet>
    <servlet-name>MyServletfoxml</servlet-name>
    <servlet-class>servlet.MyServletfoxml</servlet-class>
    <load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>MyServletfoxml</servlet-name>
    <url-pattern>/xml</url-pattern>
</servlet-mapping>

总结:

Servlet技术是Java EE技术的一部分。所有Servlet都运行在Servlet容器中,容器和Servlet间的接口为javax.servlet.Servlet。javax.servlet包还提供了一个名为GenericServlet的Servlet实现类,该类是一个辅助类,以便可以方便的创建一个servlet。不过,大部分servlet都运行在HTTP环境中,因此派生一个javax.servlet.http.HttpServlet的子类更为有用,注意HttpServlet也是GenericServlet的子类。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值