其他缓存重定向自动刷新功能

缓存机制

package com.taxue.servletday03;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * /nocacheservlet
 * @author wqk
 * 一个不缓存一个缓存
 *
 */
public class NoCacheServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//不缓存
		response.setIntHeader("Expires", -1);
		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("Pragma",  "no-cache");
		response.setContentType("text/html;charset=utf-8");
		response.getWriter().write("当前时间:"+new Date().toString());
	 
	}

	//缓存
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//缓存一个月
		response.setDateHeader("Expires", System.currentTimeMillis()+1000l*3600*24*30);
		InputStream  in = new FileInputStream(this.getServletContext().getRealPath("1.jpg"));
		OutputStream out = response.getOutputStream();
		byte[] bs = new byte[1024];
		int i = 0;
		while ((i=in.read(bs)) != -1){
			 out.write(bs, 0, i);
		}
		in.close();
	 
	}

}

重定向

package com.taxue.servletday03;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 重定向 redirectservlet
 */
public class RedirectServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//		重定向 redirectservlet
		response.sendRedirect("/servlet/index.jsp");
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

自动刷新功能

package com.taxue.servletday03;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 访问refresh 自动刷新功能
 */
public class RefreshServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		response.getWriter().write("恭喜你注册成功!三秒跳转");
		response.setHeader("refresh", "3;url=www.baidu.com");
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

类加载器

反射

package com.taxue.servletday03;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Properties;

public class Service {
	public void methdo1() throws FileNotFoundException, IOException{
		//--在没有ServletContext的环境下,如果想要读取资源,可以使用类加载器以加载类的方式加载资源,
		//		这里要注意,类加载器从哪个目录加载类,就从哪个目录加载资源,
		//		所以此处的路径一定要给一个相对于类加载目录的路径
		Properties prop = new Properties();
		prop.load(new FileReader(Service.class.getClassLoader().getResource("config.properties").getPath()));
		System.out.println(prop.getProperty("username"));
		System.out.println(prop.getProperty("password"));
	}
	public static void main(String[] args) throws UnsupportedEncodingException {
		String str = "王乾坤";
		String urlstr = URLEncoder.encode(str, "utf-8");
		System.out.println(urlstr);
		String jmstr = URLDecoder.decode(urlstr, "utf-8");
		System.out.println(jmstr);
	}

}
config.properties

username=zhangshan
password=123


获取客户 端信息

package com.taxue.servletday03;

import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 *  http://127.0.0.1:8080/servlet/getpcmsg
 * 获取客户 端信息
 * @author wqk
 */
public class GetPcMsg extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取客户端完整的url 例:http://localhost:8080/servlet/getpcmsg
		String url = request.getRequestURL().toString();
		//获取项目资源的url  例:/servlet/getpcmsg
		String itemUrl = request.getRequestURI().toString();
		//获取访问项目资源的访问者的地址例:/servlet/getpcmsg
		String remoteAddr = request.getRemoteAddr();
		//获取请求头
		Enumeration<String> enumeration = request.getHeaderNames();
		while (enumeration.hasMoreElements()) {
			String headername = enumeration.nextElement();
			String headervalue= request.getHeader(headername);
			System.out.println(headername+" : "+headervalue);
		}
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	}
}

乱码问题

servle代码

package com.taxue.servlet.garbled;
/**
 * http://127.0.0.1:8080/servlet/garbled
 * 问题:乱码问题的解决
 * pot和get提交乱码不一样,都可用get提交方式解决 
 */
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Garbled extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//		核心思想 start
		String username = request.getParameter("username"); 
		username = new String(username.getBytes("iso8859-1"),"utf-8");
		System.out.println(username);
		//		核心思想 end
	 Enumeration<String> enumeration = request.getParameterNames();
		while(enumeration.hasMoreElements()){
			String name = enumeration.nextElement();
			String value = request.getParameter(name);
			value = new String(value.getBytes("iso8859-1"),"utf-8");
			System.out.println(name+":"+value);
		} 
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");// 核心思想 end
		Enumeration<String> enumeration = request.getParameterNames();
		while(enumeration.hasMoreElements()){
			String name = enumeration.nextElement();
			String value = request.getParameter(name);
			System.out.println(name+":"+value);
		}
	}

}
页面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <!-- 测试POST/GET请求参数-->
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
  	<h1>POST提交</h1><hr>
  	<form action="http://127.0.0.1:8080/servlet/garbled" method="POST">
  		姓名:<input type="text" name="username"/>
  		地址:<input type="text" name="addr"/>
  		<input type="submit" value="提交" />
  	</form>
  	<h1>GET提交</h1><hr>
  	<form action="http://127.0.0.1:8080/servlet/garbled" method="GET">
  		姓名:<input type="text" name="username"/>
  		地址:<input type="text" name="addr"/>
  		<input type="submit" value="提交" />
  	</form>
  </body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值