javaWeb学习日记(4)------ servlet学习(server请求,servletResquest & servletResponse)

HTTP简介

●WEB浏 览器与WEB服务器之间的- -问一答的交互过程必须遵循-定的规则, 这个规则就是HTTP协议。
●HTTP是hypertext transfer protocol (超文本传输协议)的简写,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程
●HTTP协议 的版本HTTP/1.0、HTTP/1.1、HTTP-NG

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


传递参数的两种方式POSS & GET

在这里插入图片描述
例如:在一个html 文件中一个form 表单

post

<body>
 <form action="SigInServlet" method="post">
  <input type="text" name="user"/>
  <input type="password" name="password"/>
  <input type="submit" name="submit">
 </form>
</body>

web.xml 文件中实现服务器配置

 <servlet>
  <servlet-name>SigInServlet</servlet-name>
  <servlet-class>day0128.javaweb.SigInServlet</servlet-class>
  <load-on-startup>3</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>SigInServlet</servlet-name>
  <url-pattern>/SigInServlet</url-pattern>
 </servlet-mapping>

注:url-pattern 中写的必须和表单跳转一致

在这里插入图片描述
在请求的正文中,可看到传递的参数
在这里插入图片描述

get

在这里插入图片描述请求正文为空
在这里插入图片描述

区别

1).使用GET方式传递参数:
①。在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET.
②。如果网页中的表单元素的method 属性被设置为了“GET",浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET.
③使用GET请求方式给WEB服务器传递参数的格式:
http://www. abcf. com/ counter . jsp?name=1c&password=123
④.使用GET方式传送的数据量一 般限制在1KB以下。

2).使用POST方式传递参数:
①POST请求方式主要用于向WEB服务器端程序提交FORM表单中的数据: form表单的method 置为POST
②POST方式将各个表单字段元素及其数据作为HTTP消息的实体内容发送给WEB服务器,传送的数据量要比使用GET方式传送的数据量大得多。



servletRequest & servletResponse

这两个接口的实现类都是服务器给予实现的,并在服务器调用service方法时传入.

@Override
 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
  System.err.println("service");
 }
  • ServletRequest: 封装了请求信息。可以从中获取到任何的请求信息.
  • Serv1etResponse: 封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现.

servletResquest 常用方法

  1. String getParameter(String name)
    根据参数的名字,返回参数值,若请求参数含有多个值(例如checkbox),只能获得第一个提交的值

.html 中的代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 	<form action="SigInServlet" method="get">
  		<input type="text" name="user"/>
  		<input type="password" name="password"/>
  		<input type="submit" name="submit">
  		<br><br>
  		<input type="checkbox" name="character" value="A">A
  		<input type="checkbox" name="character" value="B">B
  		<input type="checkbox" name="character" value="C">C
  		<input type="checkbox" name="character" value="D">D
 	</form>
</body>
</html>

类SigInServlet(继承了Servlet类) 中的 server方法

@Override
 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
  System.out.println("get Service");
  
  String user = req.getParameter("user");
  String pass = req.getParameter("password");
  System.out.println("user :"+user);
  System.out.println("password :" + pass);
  
  }

web.xml中的配置

 <servlet>
  <servlet-name>SigInServlet</servlet-name>
  <servlet-class>day0128.javaweb.SigInServlet</servlet-class>
  <load-on-startup>3</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>SigInServlet</servlet-name>
  <url-pattern>/SigInServlet</url-pattern>
 </servlet-mapping>

结果:
在这里插入图片描述
在这里插入图片描述

  1. String[] getParameterValues(String name)
    根据请求参数的名字,返回请求参数对应的字符串数组.
    (web.xml , html文件均不改变)
    server 中代码:
String[] sports =  req.getParameterValues("character");
  for (String string : sports) {
   System.out.println("The checked spoerts include :"+string);
  }

结果:
在这里插入图片描述
在这里插入图片描述

  1. Enumeration getParaneterNames()
    返回参数名对应的Enumeration对象,类似于ServletConfig(或ServletContext)的getInitParameterNames()方法.
    (web.xml , html文件均不改变)
    server 中代码:
Enumeration<String> names = req.getParameterNames();
  while (names.hasMoreElements()) {
   String name = names.nextElement();
   System.out.println(name +"--->"+req.getParameter(name));
  }

结果:
在这里插入图片描述
在这里插入图片描述(character 得到第一个提交的)

  1. Map getParameterMap()
    返回请求参数的键值对: key: 参数名,value:参数值,String 数组类型。
    (web.xml , html文件均不改变)
    server 中代码:
Map<String, String[]> map = req.getParameterMap();
  for (Map.Entry<String, String[]> string : map.entrySet()) {
   System.out.println(string.getKey()+"::"+Arrays.asList(string.getValue()));
  }

结果:
在这里插入图片描述


–对 servletResquest 进行强制转换成 HttpServletResquest
对于在网页中发出的请求的所有参数都可以获得
以下列举几个常用参数

//强制类型转换
HttpServletRequest hsr = (HttpServletRequest) req;
  //得到请求的 URL 
  String requstUrl = hsr.getRequestURI();
  System.out.println(requstUrl);
  
  //得到 method 
  String method = hsr.getMethod();
  System.out.println(method);
  
  //得到QueryString
  String queryString = hsr.getQueryString();
  System.out.println(queryString);
  
  //得到 servletPath
  String servletpathString = hsr.getServletPath();
  System.out.println(servletpathString);
  System.out.println("service-end:"); 



.

servletResponse

//得到response

//得到 writer
  PrintWriter pw = res.getWriter();
  //在返回的页面中打印 HelloWorld
  pw.print("helloWorld");

下是将返回的“HelloWorld ”以word 文件的形式进行下载


  //得到一个 word
  res.setContentType("application/x-abiword");
  
  PrintWriter pw = res.getWriter();
  pw.print("helloWorld");

res.setContentType(“application/x-abiword”);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值