Servlet调用流程(登陆)及中文问题

本文详细介绍了Servlet的调用流程,从访问静态HTML页面到通过POST提交数据到Servlet,再到Servlet如何处理GET和POST请求。同时,针对中文问题,提出了在HTML中设置charset、在Servlet中进行编码解码等解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet调用流程

1.首先访问http://127.0.0.1/login.html 打开一个静态html页面,在这个页面中可以通过form以post的形式替吉奥数据

2./login路径,在上一步骤liogin.html,用form把账号和密码提交到/login这个路径,并且附带method="post"。

3.找到对应的Servlet。 tomcat接受一个新的请求,http://127.0.0.1/login。就到配置文件web.xml中进行匹配,发现/login对应的servlet类是LoginServlet。接下来的工作基于这个loginServlet.

4.实例化Servlet对象 tomcat定位之后,发现并没有loginServlet的实例存在,于是调用其public午餐构造函数LoginServlet(),实例化一个LoginServlet对象以备之后使用。

5.调用doPost或者doGet方法。根据html提交信息时候的method确定使用哪个方法。

6.request获取参数,通过request把页面上传递来的账号密码信息取出来。

7.response 设置响应,根据账号密码是否正确创建不同的html字符串。然后将html字符串通过一下方式,设置在response对象上。

8. tomcat把html传递给浏览器。Servlet完成工作之后,tomcat拿到被Servlet修改锅的response,根据这个response生成html字符串,然后再通过http协议把这个字符串发回给浏览器,l浏览器再根据http协议再去获取这个html字符串,并渲染在界面上,这样在效果上浏览器就可以看到Servlet中生成的字符串了。

 


doGet, doPost, service方法

  • 当浏览器使用get方式提交数据的时候,servlet需要提供doGet()方法。get方式有:
    • form默认的提交方式
    • 通过一个超链访问某个地址
    • 在地址栏直接输入某个地址
    • ajax指定使用get方式的时候
  • 当浏览器使用post方式替吉奥数据的时候,servlet需要提供doPost()方法。post方式有:
    • 在form上显示设置method="post"的时候
    • ajax指定post的方式的时候

Servlet继承HttpServlet同时也继承了一个方法。service(HttpServletRequest , HttpServletResponse ).

在执行doPost()或者doGet()之前都会执行service(),由service判断执行哪一个。三者的参数列表一样。所以有时候会直接重写service()方法,在其中提供相应的服务,就不用区分get,post了。


关于中文问题

1.在html中加上<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2.method=“post"

3.在servlet中进行编码和解码。

byte[] bytes = name.getBytes("ISO-8859-1"); 

name = new String(byte,"UTF-8");

或者

request.setCharacterEncoding("utf-8");

这样可以使用utf-8的方式获取中文。

4.返回中文的响应。

在servlet中加上

response.setContentType("text/html; charset=utf-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值