当前位置: 首页 > news >正文

网站建设爫金手指科捷15广告联盟推广

网站建设爫金手指科捷15,广告联盟推广,网页制作工作描述,一级建造师求职网目录 request对象 一个doGet小项目: 乱码问题: 请求转发 request作用域 response对象 ①:response的主要方法 ②:响应乱码问题 request对象 是当客户端向服务器端发送请求时,服务器为本次请求创建request对象,并在调用Ser…

目录

request对象

一个doGet小项目:

乱码问题:

请求转发

request作用域

response对象

①:response的主要方法

②:响应乱码问题


request对象

        是当客户端向服务器端发送请求时,服务器为本次请求创建request对象,并在调用Servlet的service方法时,将该对象传递给service方法。Request对象中封装了客户端发送过来的所有的请求数据。

解释:

我们在浏览器中使用,任何操作构成请求信息,发送给reuqest对象,然后发送给Servlet接口下面的service,往下传到HttpServlet。

一个doGet小项目:

RegisServlet.java

package com.qcby.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.catalina.User;@WebServlet("/regist")
public class RegisServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubString username = req.getParameter("username");String password = req.getParameter("password");System.out.println(username + " " + password);}}

rigist.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="/JiuYueServices/regist" method="get"> 用户名:<input type="text" name="username"/>密码:<input type="text" name="password"/><input type="submit" value="注册"></form>
</body>
</html>

<form action="/JiuYueServices/regist" method="get">这里面的JiuYueServices是项目名

成功:

乱码问题:

        由于request是接收来自用户的请求,服务器会根据编码格式将请求转换。服务器端默认的编码格式为ISO-8859-1(此编码不支持中文),而我们用户浏览器默认是utf-8的编码格式,所以往往会产生乱码。要想解决乱码问题,需要设置request当中的编码格式,告诉服务器以何种形式来解析数据。或者在接收到乱码以后,通过何种编码格式进行还原

 解决方法:

方式一:(所有)

request.setCharacterEncoding("UTF-8");

方式二:(借助String对象的方法,该种方式对任何请求有效,都是通用的)

new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8"))

请求转发

        请求转发是一种服务器行为,当客户端请求到达后,服务器进行转发,此时会将请求对象进行保存,地址栏中的url地址不会发生改变,得到相应后,服务器端会将请求发送给客户端,从始至终只有一个请求发出。

request.getRequestDispatcher(url).forward(request, response);

两个servlet:

/*** * @author lenovo*         请求转发跳转*                 可以让服务器端跳转到客户端(或者指定的(Servlet)*           特点:	*     1.服务器端行为      *     2.地址栏不会发生改变*     3.从始至终都是一个请求*     4.request当中的数据在servlet程序中共享*/
@WebServlet(value="/s01")
public class Servlet01 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubString username  = req.getParameter("username");String password = req.getParameter("password");System.out.println("s01="+username + " " + password);// 请求跳转到Servlet02//req.getRequestDispatcher("s02").forward(req, resp);//请求发送到html页面req.getRequestDispatcher("RegistServlet.html").forward(req, resp);}
}
@WebServlet(value="/s02")
public class Servlet02 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubreq.setCharacterEncoding("UTF-8");String username  = req.getParameter("username");String password = req.getParameter("password");System.out.println("s02=" + username + " " + password);}
}

运行起来我们发现s01和s02都会输出,且只是请求了一次

request作用域

request表示一个请求,只要发出一个请求就会创建一个request对象,他的作用域:仅在当前请求中有效。

用处:常用于服务器间同一请求不同页面之间的参数传递,常用于表单的控制值传递。

常用的方法

request.setAttribute(String name,Object value)设置域对象内容
request.getAttribute(String name)获取域对象内容
request.removeAttribute(String name)删除域对象内容

两个servlet

@WebServlet("/s03")
public class Servlet03 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("我是03");req.setAttribute("user", "qcby");req.setAttribute("age", 18);req.getRequestDispatcher("s04").forward(req, resp);}}
@WebServlet("/s04")
public class Servlet04 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("我是04");System.out.println(req.getAttribute("user"));System.out.println(req.getAttribute("age"));}
}

访问:http://localhost:8080/SecondServlet/s03

response对象

 

①:response的主要方法

getWriter()获取字符流(只能相应字符串数据)
getOutputStream()获取字节流(能相应一切数据)

getWriter()

@WebServlet("/regist")
public class RegistServlet  extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {PrintWriter printWriter = resp.getWriter();printWriter.print("success");}}

getOutputStream()

@WebServlet("/regist")
public class RegistServlet  extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub// PrintWriter writer = resp.getWriter();// writer.print("success");ServletOutputStream stream  = resp.getOutputStream();stream.write("Success".getBytes());}}

html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="/SecondServlet/regist" method="post"> 用户名:<input type="text" name="username"/>密码:<input type="text" name="password"/><input type="submit" value="注册"></form>
</body>
</html>

②:响应乱码问题

response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "text/html;charset=UTF-8");

http://www.lbrq.cn/news/2575891.html

相关文章:

  • 做网站公司好开吗官网首页入口百度
  • 上海网站建设公司电java培训班学费一般多少
  • 松江品划做网站四川seo整站优化
  • 苏州营销型网站制作微信营销怎么做
  • 代做网站关键词排名北京网站推广公司
  • 临沂企业做网站企业排名优化公司
  • 网站的收藏本站怎么做重庆网站优化
  • 3.建设营销型网站流程宁波网站推广营销
  • 工业信息化部网站备查询关键词优化公司网站
  • 福州推广seo排名咸阳seo公司
  • 一个网站两个域名百度商桥安装方法关键词首页排名优化平台
  • 南充房价2023新楼盘房价天津seo排名收费
  • 在国外做h网站怎么样广东的seo产品推广服务公司
  • 湖南营销型网站建设多少钱自己有网站怎么推广
  • 设计师专用网站seo培训班 有用吗
  • 网站建设商业计划书网站提交百度收录
  • 做网站卖狗挣钱吗杭州网站推广优化
  • 高端网站设计公司有搜索引擎的作用
  • 棋牌游戏网站模板下载安装关键词排名优化易下拉软件
  • wordpress同行者画廊林云seo博客
  • wordpress+调用多媒体绍兴seo优化
  • 做电影网站的资源从哪里换雷神代刷推广网站
  • 超大免费网站空间广东疫情最新资讯
  • 网站搭建软件d怎么做小程序
  • 中英文网站建设方案武汉seo优化服务
  • 金阳建设集团网站全网营销外包
  • 教育行业网站设计化工seo顾问
  • 解析网站东莞网站建设方案外包
  • 网站 动画 怎么做的百度手机助手app下载官网
  • 多人一起做视频网站bt磁力搜索器
  • Python Seaborn【数据可视化库】 全面讲解
  • linux 启动流程?
  • OAuth 2.0 的安全升级版授权协议 OAuth 2.1 详解
  • eSIM技术深度解析:从物理芯片到数字革命
  • 深度学习-模型初始化与模型构造
  • 【龙泽科技】汽车故障诊断仿真教学软件【风光580】