JavaWeb04_Servlet应用初步
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaWeb04_Servlet应用初步,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3383字,纯文字阅读大概需要5分钟。
内容图文
![JavaWeb04_Servlet应用初步](/upload/InfoBanner/zyjiaocheng/1221/df77a385c4674888aa9f5e4c8fe48562.jpg)
JavaWeb04_Servlet应用初步
获取上下文对象
方法一:重写init()方法,通过ServletConfig对象获得:
public ServletContext context;
@Override
public void init(ServletConfig config) throws ServletException {
context = config.getServletContext();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
context.setAttribute("key", "小王");
}
方法二:
ServletContext context = this.getServletContext();
注意,一旦重写了init()方法,就不能通过这种方式获取上下文对象!!
获取网站访问次数的简单实现
public class ServletContext2 extends HttpServlet{
public ServletContext context;
public int numb;
@Override
public void init(ServletConfig config) throws ServletException {
context = config.getServletContext();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String number = (String) context.getAttribute("num");
if(number == null){
numb = 1;
}else{
numb = Integer.parseInt(number)+1;
}
System.out.println("当前网站访问次数:"+numb);
context.setAttribute("num", numb+"");
}
}
页面跳转的方法:
方法一:
response.sendRedirect("/JavaWeb03/main.html");
方法二:
response.setStatus(302);
response.setHeader("location", "/JavaWeb03/main.html");
方法三:
response.setHeader("refresh", "3; /JavaWeb03/main.html" );
Write or print?
//print 和 write 都是输出内容到客户端
//共同点:两者都不会刷新页面,都是在原来基础上继续增加内容,这两个方法都是重写了抽象类里面的write方法
//区别:print 方法可以将各种数据类型都转化为字符串进行输出,write 方法只能输出字符、字符串、字符数组等
PrintWriter out = response.getWriter();
out.print("123");
out.write(123);
out.write("123");
out.write(123); //无法输出
两种方式输出内容到html:
方式一:getWriter();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.print("<html>");
out.print("<head><title>今天中午吃什么</title></head>");
out.print("<body><p>THIS IS P</p></body>");
out.print("</html>");
out.print("吃屎吧");
方式二:getOutputStream();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
//如果:输出二进制文件?
OutputStream out = response.getOutputStream();
String str = "今天天气还可以";
byte[] by = str.getBytes("utf-8");
out.write(by);
out.write((1+"").getBytes());
}
如何实现文件下载?
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
//文件下载:设置响应头
response.setHeader("Content-type", "image/jpeg; charset=utf-8");
response.setHeader("Content-Disposition", "attachement; filename=BeautifulGirls");
//Disposition:配置 attachement:附件
//获取到文件的物理路径:getRealPath 获取文件的路径 可以将虚拟路径转化为物理路径(绝对路径)
String path = this.getServletContext().getRealPath("/img/13.jpg");
System.out.println(path);
//通过二进制流将图片读取出来
int len=0;
byte[] by = new byte[1024]; //一次读取1024字节
//通过文件的输入流获取文件
InputStream in = new FileInputStream(new File(path)); //文件读取到内存中去
//创建一个文件输出流,将内容输出到客户端
OutputStream out = response.getOutputStream();
while((len = in.read(by)) > 0){ //read(by) 表示一次读取上面定义的1024字节,也可以一个字节一个字节读:read()
//输出到客户端
out.write(by,0,len);
}
//关闭流
in.close();
out.close();
}
原文:http://www.cnblogs.com/wshlf/p/6539951.html
内容总结
以上是互联网集市为您收集整理的JavaWeb04_Servlet应用初步全部内容,希望文章能够帮你解决JavaWeb04_Servlet应用初步所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。