您当前的位置: 首页 >  servlet

星夜孤帆

暂无认证

  • 3浏览

    0关注

    626博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Servlet学习笔记(二)

星夜孤帆 发布时间:2018-09-12 09:40:23 ,浏览量:3

一.HTTP协议 1.什么是HTTP协议?
  • 就是W3C制定的一个规范
  • 规定了浏览器和服务器如何通信,通信的数据格式
 2.如何通信
  • 建立连接
  • 发送请求
  • 接受响应
  • 关闭连接

 一个请求一次连接,尽量降低服务器的压力

3.请求数据结构
  • 请求行:请求的基本信息
  • 消息头:对实体内容的描述
  • 实体内容:浏览器向服务器发送的业务数据
 4.响应数据结构
  • 状态行:响应的基本信息
  • 消息头:对实体内容的描述
  • 实体内容:服务器向浏览器发送的业务数据
5.注意 1.很多事情不需要我们处理
  • 通信的步骤由浏览器和服务器自动实现
  • 请求数据中的请求行,消息头由浏览器自动填写
  • 响应数据中的状态行,消息头通常由服务器自动填写
2.少量事情需要我们处理
  • 请求数据中的实体内容由我们提供
  • 响应数据中的实体内容由我们提供

通过request处理请求数据,通过response处理响应数据

二.注册案例





注册


	
	
		

账号:

密码:

性别: 男 女

兴趣: 美食 竞技 社交

package web;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		//采用方案三解决POST请求乱码问题
		req.setCharacterEncoding("utf-8");
		/*
		 * 处理请求的一般流程
		 * 1.接收参数
		 */
		String name = req.getParameter("username");
		String pwd = req.getParameter("pwd");
		String sex = req.getParameter("sex");
		String[] interests = req.getParameterValues("interest");
		//采用方案一解决乱码问题
//		byte[] bs = name.getBytes("iso8859-1");
//		name = new String(bs,"utf-8");
		 //2.处理业务
		 //3.发送响应
		System.out.println(name);
		System.out.println(pwd);
		System.out.println(sex);
		if(interests!=null){
			for(String interest:interests){
				System.out.println(interest);
			}
		}
		//3.发送响应
		res.setContentType("text/html;charset=utf-8");
		PrintWriter w = res.getWriter();
		w.println("

ok,"+name+"

"); w.close(); } }


  servlet2
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
  	reg
  	web.RegServlet
  
  
  	reg
  	/reg
  
  
  
三.请求方式 1.什么是请求方式?
  • 就是浏览器向服务器发送请求时传递数据的方式
2.常用请求方式
  • get
  • post
3.GET和POST的区别(面试题) 1)GET
  • 采用路径传参
  • 参数在传递过程中可见,隐私性差
  • 路径大小有限制,所有传递的参数大小受限

所有的请求默认都是GET请求

2)POST
  • 采用实体内容传参
  • 参数在传递过程中不可见,隐私性好
  • 实体内容专门用来传参,大小不受限制

在表单上加method="post"

3)建议
  • 参数需要保密时用POST
  • 参数较多时用POST
四.Servlet运行原理

五.乱码解决方案

 

 

 

 

 

 

 

 

 

 

 

 

 

 

关注
打赏
1636984416
查看更多评论
立即登录/注册

微信扫码登录

0.0478s