重温servlet②

重定向:我给服务器请求一条消息,服务器让我访问另外一个服务器(新的地址)。302状态码,并设置location头,完成重定向。两个请求。


package com.pcx.servlets;

?

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

?

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

?

import org.apache.commons.io.IOUtils;

?

/**

* @author
平常心cz

*测试io流

*/

public
class Gservlet extends HttpServlet {

????/**

???? *

???? */

????private
static
final
long
serialVersionUID = 1L;

?

????public
void doGet(HttpServletRequest request, HttpServletResponse response)

????????????throws ServletException, IOException {

????????/**

???????? * 发送文字

???????? */

//????????String s="hello Response";

//????????byte[] bytes=s.getBytes();

//????????

//????????response.getOutputStream().write(bytes);

????????

????????/**

???????? * 发送图片

???????? */

????????String path ="D:/a.jpg";

????????FileInputStream in=new FileInputStream(new File(path));

????????byte[] bytes=IOUtils.toByteArray(in);

????????response.getOutputStream().write(bytes);

????}

?

}

?


?

????public
void doGet(HttpServletRequest request, HttpServletResponse response)

????????????throws ServletException, IOException {

????????/**

???????? * 设置重定向

???????? * 1设置location

???????? * 2设置302状态码

???????? */

//????????response.setHeader("Location", "/zuoye/hello100.jsp");

//????????response.setStatus(302);

????????

????????/**

???????? * 快捷的重定向

???????? */

????????response.sendRedirect("http:www.baidu.com");

????}

Request


?

????/*

???? * 适用referer
来防盗链

???? */

????public
void doGet(HttpServletRequest request, HttpServletResponse response)

????????????throws ServletException, IOException {

????????String referer=request.getHeader("Referer");

????????System.out.println(referer);

????????if (referer==null||!(referer.contains("localhost"))) {

????????????System.out.println("hello");

????????}else {

????????????response.sendRedirect("http://www.baidu.com");

????????}

????}

?

?


/**

* @author
平常心cz

*测试request的获取url

*/

public
class
Dservlet
extends HttpServlet {

????

????public
void doGet(HttpServletRequest request, HttpServletResponse response)

????????????throws ServletException, IOException {

????????response.getWriter().print(request.getScheme()+"<br/>");//获取请求协议

????????response.getWriter().print(request.getServerName()+"<br/>");//获取服务器的名称

????????response.getWriter().print(request.getServerPort()+"<br/>");//获取服务器的端口号

????????response.getWriter().print(request.getServletContext()+"<br/>");//获取项目名

????????response.getWriter().print(request.getServletPath()+"<br/>");//获取servlet的路径

????????response.getWriter().print(request.getQueryString()+"<br/>");//获取请求的参数

????????response.getWriter().print(request.getRequestURI()+"<br/>");//获取请求的uri

????????response.getWriter().print(request.getRequestURL()+"<br/>");//获取请求的url

????}

?

}

?

?


package com.pcx.servlets;

?

import java.io.IOException;

import java.util.Arrays;

import java.util.Enumeration;

import java.util.Map;

?

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

?

/**

* @author 平常心cz

*测试request获取请求参数

*/

public class Fservlet extends HttpServlet {

?

????public void doGet(HttpServletRequest request, HttpServletResponse response)

????????????throws ServletException, IOException {

????????System.out.println(request.getParameter("xxx"));

????????System.out.println(request.getParameter("yyy"));

????}

?

????public void doPost(HttpServletRequest request, HttpServletResponse response)

????????????throws ServletException, IOException {

????????String username=request.getParameter("username");

????????String password=request.getParameter("password");

????????String[] hobbys=request.getParameterValues("hobby");

????????System.out.println(username+"\n"+password+"\n"+Arrays.toString(hobbys));

????????

????????/**

???????? * 测试获取多个参数名称

???????? */

????????Enumeration names=request.getAttributeNames();

????????while(names.hasMoreElements()){

????????????System.out.println(names.nextElement());

????????}

????????

????????/**

???????? * 获取所有的参数 并封装到map中

???????? */

????????Map<String, String[]>map=request.getParameterMap();

????????System.out.println(map);

????????for (String name : map.keySet()) {

????????????String [] values=map.get(name);

????????????System.out.println(name+"="+Arrays.toString(values));

????????}

????}

?

}

时间: 2024-08-28 18:46:42

重温servlet②的相关文章

重温Servlet学习笔记--Cookie对象

首先要了解cookie必须得先了解http协议,,Cookie是http协议指定的,先由服务器保存cookie到浏览器,在下次浏览器请求服务器时把上次请求得到的cookie归还给服务器,cookie以键值对的形式保存在本地的缓存中. HTTP协议规定: 1个cookie最大4kb 一个服务器最多向一个浏览器保存20个cookie 一个浏览器最多保存300个cookie 注意,不同浏览器还是略有差异,不是所有浏览器都老老实实的遵守这个规定. cookie的用途举例: 服务器使用cookie来跟踪客

重温Servlet学习笔记--request对象

request和response是一对搭档,一个负责请求一个负责响应,都是Servlet.service()方法的参数,response的知识点前面梳理过了,这里只说一下request,在客户端发出每个请求时,服务器都会创建一个request对象,把请求的数据封装到request中,然后在调用Servlet.service()中传递进去.我们在创建一个servlet时通常会使用doGet或者doPost方法,并没有看到service()方法,就是因为父类的service方法已经读取到了reque

重温Servlet学习笔记--session对象

session的类型是属于HttpSession,HttpSession是由javaWeb提供的,用来会话跟踪的类.session是服务器端对象,保存在服务器端. HttpSession是servlet三大域对象之一,其他两个是request和application(servletContext),所以它也有setAttribute(),getAttribute(),等方法. HttpSession的会话范围是某用户从首次访问服务器开始,到该用户关闭浏览器结束,session对象会存活在这中间的

重温Servlet学习笔记--response对象

在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应正文 response是响应对象.向客户端输出响应正文(响应体)可以使用response的响应流,response提供了两个响应流对象: PrintWriter printWriter = response.getWriter();  只能写字符流,如输出text信息 ServletOutputSt

重温Servlet学习笔记--servletContext对象

一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对象在tomcat启动时就创建,在tomcat关闭时才被销毁.有时候我们也把这个对象叫做application. ServletContext对象的作用就是在整个web应用的动态资源之间共享数据,比如在AServlet中向ServletContext中保存一个数据,然后在Bservelt中获取这个数据

重温servlet①

Servlet是单例的,是线程不安全的.比较灵活,但是容易会使两个线程产生错误 类由我们自己来写,对象由服务器生成,方法由服务器自己调用. ? 一个servletconfig对象对应着一段web.xml中的servlet的配置信息. 可以获取到servletname --getServletName 获取servlet的上下文 --getServletContext 都是接口 实现类都是tomcat提供的. 获取初始化参数 --getinitparameter(String name) ? 在w

重温Servlet学习笔记--编码问题

在说编码问题之前,首先先了解一下常见的字符编码: ISO-8859-1:  拉丁编码,不支持中文 gbk,gb2312,gb18030:系统默认编码,是中国的国标码 utf-8: 支持几乎所有语言的编码,一般我们同意用这个 为什么为出现乱码问题呢?我们知道web程序通常就是服务器和客户端之间的通信,服务器的默认编码是ISO,而浏览器的默认编码不太统一,一般浏览器会默认是gbk编码,这样,当传送数据的时候就会很容易出现乱码问题了. 响应(response)编码 服务器发送给客户端数据!响应是由re

重温JSP/Servlet技术之Jsp基础篇(详解二)

cookie 今天就讲cookie,因为在课堂上我没有听懂,所以,如其说是博客,不如说是我的复习笔记,哈哈 首先先发布一张Cookie原理图 1.什么是 Cookie  “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 Jsp 来创建和取回 cookie 的值.”  cookie 是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息. 从Jsp的角度看,cookie 就是一些字符串信息.这些信息存放在客户端的

Description Resource Path Location Type The superclass &quot;javax.servlet.http.HttpServlet&quot; was not foun

一段时间没亲自建新项目玩乐,今天建立了一Maven project的时候发现了以下异常,Description Resource Path Location Type The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path index.jsp /easyBuy/src/main/webapp line 1 JSP Problem 经过查找原因,原来是因为忘记设置server