servlet入门案例 hellword

项目发布-访问流程:
1、新建一个web工程,
2、发布到tomcat上,
2、启动tomcat访问,使用的是http协议进行,所以利用浏览器输入资源地址即可

目前位置。我们发布静态资源,访问是已经没问题。

servlet入门案例:
如果想开发服务器必须能解析和响应http协议,java已经写好了一个类叫Servlet,这个类就可以解析和响应http请求。
所以我们只需要new Servlet就可以了。 但是Servlet是个接口, 所以是使用他的子类 HttpServlet,
但是在我们web编程中,我们是不需要去new,new的工作交给了tomcat。所以我们编写servlet就是自己去继承HttpServlet
import javax.net.ssl.HttpsURLConnection;
import javax.servlet.http.HttpServlet;

public class MyServlet extends HttpServlet{

}

但是。这样写太复杂了。 我们的工具可以直接新建一个servlet,然后可以帮我们省下很多代码量,
1、继承类,重写doget、doposet方法

package com.xingxue.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public LoginServlet() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("helloword");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

2、配置xml文件访问路径

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>TestWeb1.0.1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>LoginServlet</display-name>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.xingxue.servlet.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
</web-app>

此时注意访问流程:
比如我们访问 http://localhost:8088/TestWeb1.0.1/login
http://localhost:8088 : 代表我们的tomcat服务器, 请求到的tomcat 所有的事情都交给tomcat来完成,
1、查看是否存在TestWeb1.0.1这个项目,如果不存在404
2、如果存在看下面是否还有资源名,如果没有,就直接访问该项目web.xml配置的资源名字,一般是index.xxxxxx
3、如果还有资源名,那就查找web.xml下面又一个配置 name,如果没查到404, 如果查找到了,就去查找该url 对应的一个java类,如果找不到就是500,
4、如果找到,就利用反射机制吧该类给创建一个对象。然后调用他的doget方法。

这里写图片描述

我们发现我们继承的servlet要我们重写两个方法,一个叫doget,一个叫dopost:
该方法的区别在于:
1、如果是利用a标签或者直接在地址栏输入地址就调用doget方法,
helloword
2、如果是用form表单提交数据就是调用dopost

当我们以http的post形式提交数据的时候,我们浏览器会吧请求的数据封装成一个请求数据包,交给tomcat,tomcat会根据需求去吧包查分,自己用的数据留下,别人用的数据给过去。比如提交的参数,交给我们的servlet,而servlet中执行接收数据的方法是doget(超链接)或者dopost(表单)

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


    }

而我们的请求数据都会传递到我们doget和dopost方法的request参数里面,所以我们获取客户端的数据都是到request里面获取。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("dopost.......");

        //获取参数
        String account = request.getParameter("account");
        System.out.println("account = " + account);


    }

注意:我们未来用form表单提交的数据都在request里面, 那form表单可以提交的数据就很多。
账号款、密码框、单选框、多选框、下啦框等等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值