此篇自用查询

存储数据的区域对象
域对象的通用的方法:ServletContext context=getServletContext();获取ServletContext对象
setAtrribute(String name,Object obj);
getAttribute(String name);
removeAttribute(String name);

context.getRealPath(相对于该web应用的相对地址);

此方法对应jsp中的表单name,返回值为String
String username=request.getParameter("username");
String pwd=request.getParameter("pwd");

response响应信息:

相应包返回页面信息
response.getWriter().write("hello dandan...");

重定向
//重定向302+Location
//设置状态吗
response.setStatus(302);
//设置location响应头
response.setHeader("Location", "/web4/Servlets2");
可直接使用:
response.sendRedirect( "/web4/Servlets2");

延迟五秒  跳转:response.setHeader("refresh", "5;url=/web3test/login.jsp");

1)告知浏览器文件的类型:response.setContentType(文件的MIME类型);
2)告示浏览器文件的打开方式是下载:
response.setHeader("Content-Disposition","attachment;filename=文件名称");

同时也内含setCharacterEncoding的功能,所以在实际开发中只要编写    response.setContentType("text/html;charset=UTF-8");就可以解决页面输出中文乱码问题。

响应头输出字节
ServletOutputStream  getOutputStream()

解决响应头中中文乱码
path=new String(path.getBytes("ISO-8859-1"),"UTF-8");

//获取头中的agent来辨别客户端是哪个浏览器
        String agent=request.getHeader("User-Agent");
        //赋值讲义内容
        String filenameEncoder="";
        if (agent.contains("MSIE")) {
                // IE浏览器
                filenameEncoder= URLEncoder.encode(path, "utf-8");
                filenameEncoder= filenameEncoder.replace("+", " ");
        } else if (agent.contains("Firefox")) {
                // 火狐浏览器
        BASE64Encoder base64Encoder = new BASE64Encoder();
                filenameEncoder= "=?utf-8?B?"
                        + base64Encoder.encode(path.getBytes("utf-8")) + "?=";
        } else {
                // 其它浏览器
                filenameEncoder= URLEncoder.encode(path, "utf-8");                
        }
//告知浏览器文件类型
response.setContentType(getServletContext().getMimeType(path));
//告知客户端下载不要解析
response.setHeader("Content-Disposition", "attachment;filename="+filenameEncoder);

//明确数据源
String path2=getServletContext().getRealPath("dow/"+path);

request方法:
    获得客户端的请求方式:String getMethod()

//获取请求资源相关内容
    //地址栏url网络地址
    //访问地址uri
    String responseURI=request.getRequestURI();
    StringBuffer responseURL=request.getRequestURL();
    System.out.println("uri:"+responseURI);
    System.out.println("url:"+responseURL);

//获取项目名(项目名)
    String webName=request.getContextPath();

String paths = request.getServletContext().getRealPath("/");
    在jsp中的使用方法,${pageContext.request.contextPath}

解决post提交方式的乱码:request.setCharacterEncoding("UTF-8");
      解决get提交的方式的乱码:parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");

//获取单个参数值
        String username=request.getParameter("user");
        //获取一name多个值
        String[] hobbys=request.getParameterValues("hobby");

//获取指定的请求头
        String refer=request.getHeader("Referer");

获取请求头的方法:
String getParameter(String name)
String[] getParameterValues(String name)
Enumeration getParameterNames()
Map<String,String[]> getParameterMap()

request.getRequestDispatcher(转发的地址).forward(req,resp);

request.setAttribute(name,value)
    request.getAttribute(name)

在jsp端接收

<%=request.getAttribute("loginInfo") %>

---------------------------------------------------------
引用外部jar ,binutils
        //获取所有参数的map集合
        Map<String,String[]> maps=request.getParameterMap();
        //创建user对象
        users users=new users();
        //使用binutils自动映射封装
        //前提是map中的map中的key必须跟users中的属性名一一对应
        //吧map写到users中
        BeanUtils.populate(users,maps);

JAVA-Servlet操纵方法的更多相关文章

  1. java servlet 几种页面跳转的方法及传值

    java servlet 几种页面跳转的方法及传值   java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.appli ...

  2. java servlet调用带有多个返回结果集的存储过程

    一.mysql存储过程 这里我先说下我这个功能实现的逻辑及途中遇到的一些问题.这个存储过程一共带两个输入参数,一共关联到两张表的查询,每个参数都对应查询表中的一个判断,所以一共返回了两个结果集(当然要 ...

  3. java servlet+mysql全过程(原创)

    前段时间写过一篇 servlet+oracle的文章,但是那是因为公司有可能接那么一个项目,然后我当时也比较闲,所以随便学了下,那玩意是白去研究了,因为公司后面并没接到那项目. 这次学servlet用 ...

  4. java servlet+oracle 新手可看

    最近公司领导告诉接下去接的一个产品,可能会涉及到oracle数据库,以前用得最多的是mssql,前些时间学了下mysql也算少许用过.oracle没接触过.应为我之前做过.net开发,所以数据访问接口 ...

  5. Java Servlet完全教程

    Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...

  6. Java Servlet系列之Servlet生命周期

    Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...

  7. JAVA SERVLET专题(上)

    SERVLET简介 ·Java Servlet 是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和 ...

  8. Java Servlet——改进的CGI

    一.关于Servlet 在上一篇随笔中,我们看到了CGI存在的不足,其每次请求都需加载和运行一个CGI程序.若使用Java编写CGI程序,需要为每个请求都启动一个系统进程以及JVM,其执行效率大大降低 ...

  9. Java基础——clone()方法浅析

    一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  10. Java Servlet 技术简介

    Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

随机推荐

  1. (附音视频、PPT地址)《打开Python这扇窗》分享总结

    0.导读 2016年最新开发语言排行榜中,Python已经跃居第三,仅次于C.JAVA.掌握Python已经成为时下运维圈的共识,更让人期待的是,本次公开课分享的嘉宾自身就长期专注Python.Doc ...

  2. java的基础知识01

    来自<head first java>书籍的摘录

  3. 看了就会的VScode给C++的配置编译环境(Visual Studio Code)

    我看了网上的大佬们配的我是在是看不懂啊?我是一个小白啊?这太难了,这阻挡不了我,想使用这很骚的IDE,于是在不断的摸索下,终于配置成功,小白们也不用慌,这次非常简单.一定可以的. 1.下载 VS Co ...

  4. 集训模拟赛-1-T1

    最近学校网课跟得紧没时间写知识点,就拿题解凑个数(bushi 而且前两天我打着打着题解电脑就突然死机 幸运的是 我没有保存(微笑) 废话不多说 上题目! 城市攻击 (city) (256MB,1s) ...

  5. thinkphp 5.x~3.x 文件包含漏洞分析

    漏洞描述: ThinkPHP在加载模版解析变量时存在变量覆盖的问题,且没有对 $cacheFile 进行相应的消毒处理,导致模板文件的路径可以被覆盖,从而导致任意文件包含漏洞的发生. 主要还是变量覆盖 ...

  6. SpringMVC源码学习:容器初始化+MVC初始化+请求分发处理+参数解析+返回值解析+视图解析

    目录 一.前言 二.初始化 1. 容器初始化 根容器查找的方法 容器创建的方法 加载配置文件信息 2. MVC的初始化 文件上传解析器 区域信息解析器 handler映射信息解析 3. Handler ...

  7. matlab 提示 Continuous sample time is not supported by discrete derivative 错误的解决办法

    Simulink仿真的时候,出行错误提示:Continuous sample time is not supported by discrete derivative 中文意思是:连续采样时间不支持离 ...

  8. 如何将Altera官方提供的CADENCE.OLB应用于altium Designer中

  9. Java TCP小结

    服务端:                                                                                 客户端: ServerSock ...

  10. Linux 面试最常问的十个问题

    如果你要去面试一个Linux系统运维工程师的职位,下面这十个最常见的问题一定要会,否则你的面试可能就危险了.这些都是比较基本的问题,大家要理解,不能光死记硬背. 1.如何查看系统内核的版本 这里有两种 ...