写给还是小白的我们,一起加油哇~
开始之前,让我先来介绍一下HTTP协议(hypetext transfer protocol 超文本传输协议),是TCP/IP协议集中的一个应用层协议,用于定于WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。
HTTP会话方式:
浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应,对每一个页面的访问,浏览器与WEB服务器都要建一次单独的连接。
浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对。
那么在这里就不得不讲一下最常用的HTTP的两个请求方式GET和POST了:
使用GET方式传递参数:
http://localhost:8080/Day0511/loginServlet?user=vmh&password=gm&interesting=reading
使用POST方式传递参数:
http://localhost:8080/Day0511/loginServlet
以下为它们之间的区别:
那么接下来可以讲述如何在Servlet中获取请求信息了:
Servlet有一个service()方法可用于应答请求(每次请求都会调用这个问题)
然后我们要做的就是新建一个html页面(哈哈哈这里就比较简单啦):
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="loginServlet" method="post">
user:<input type="text" name="user"/><br>
password:<input type="password" name="password"/>
<br><br>
interesting:<input type="checkbox" name="interesting" value="reading"/>reading
<input type="checkbox" name="interesting" value="singing"/>singing
<input type="checkbox" name="interesting" value="party"/>party
<input type="checkbox" name="interesting" value="shopping"/>shopping
<input type="submit" value="Submit"/>
</form>
</body>
</html>
然后新建一个loginServlet,可以看到在service方法中有两个参数ServletRequest和ServletResponse
以下为几个常用方法:
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("request coming");
System.out.println(request);
//根据参数名返回参数值
String user=request.getParameter("user");
String password=request.getParameter("password");
System.out.println("user:"+user+" password"+password);
//根据请求参数的名字,返回请求参数对应的字符串数组
String [] interesting =request.getParameterValues("interesting");
if(interesting.length>0){
for(String interest:interesting){
System.out.println("interesting:"+interest);
}
}
//返回参数对应的Enumeration
Enumeration<String> names=request.getParameterNames();
while(names.hasMoreElements()){
String name=names.nextElement();
String val=request.getParameter(name);
System.out.println("name: "+name+" value: "+val);
}
//返回请求参数的键值对
Map<String,String[]> map=request.getParameterMap();
for(Map.Entry<String, String[]> entry:map.entrySet()){
System.out.println("key: "+entry.getKey()+" value: "+Arrays.asList(entry.getValue()));
}
//获取请求URI
HttpServletRequest httpServletRequest=(HttpServletRequest) request;
String requestURI=httpServletRequest.getRequestURI();
System.out.println(requestURI);
//获取请求方式
String method=httpServletRequest.getMethod();
System.out.println("method:"+method);
//返回请求方式后的字符串
String queryString=httpServletRequest.getQueryString();
System.out.println(queryString);
//返回映射的Servlet路径
String servletPath=httpServletRequest.getServletPath();
System.out.println(servletPath);
//设置响应内容类型
response.setContentType("application/msword");
//将print中的参数打印到浏览器上
PrintWriter out=response.getWriter();
out.print("response");
}
Servlet还有很多东西需要学习,今天就先讲一部分,未完待续~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。