此篇自用查询

存储数据的区域对象
域对象的通用的方法: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. Java.lang.String类

    1.String类定义   String 字符串对象本质上是一个 final 修饰的字符串数组对象, java字符串就是Unicode字符序列. 因为被final修饰, 所以字符串是常量,它们的值一旦 ...

  2. 02_Java语法

    1.注释 2.关键字 3.标识符 4.常量 5.变量 6.数据类型 7.数据类型转换 8.表达式 9.运算符 9.1算数运算符 9.2赋值运算符 9.3比较运算符 9.4逻辑运算符 9.5三元运算符 ...

  3. dp D. Caesar's Legions

    https://codeforces.com/problemset/problem/118/D 这个题目有点思路,转移方程写错了. 这个题目看到数据范围之后发现很好dp, dp[i][j][k1][k ...

  4. 【Hadoop离线基础总结】oozie调度MapReduce任务

    目录 1.准备MR执行的数据 2.执行官方测试案例 3.准备我们调度的资源 4.修改配置文件 5.上传调度任务到hdfs对应目录 6.执行调度任务 1.准备MR执行的数据 MR的程序可以是自己写的,也 ...

  5. springboot整合mybatis,利用mybatis-genetor自动生成文件

    springboot整合mybatis,利用mybatis-genetor自动生成文件 项目结构: xx 实现思路: 1.添加依赖 <?xml version="1.0" e ...

  6. C语言进阶_分支语句

    勇气是在压力之下展现出的优雅. 一.简介 C语言提供了两种分支语句可供选用,一是if.......else....类型,一种是Switch语句.两种语句都能根据条件判断结果执行不同的指令,且能进行替换 ...

  7. Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义

    MATLAB中awgn 函数可以为输入信号x 添加一定大小的噪声. out = awgn(in,snr,'measured');  是一种常见的使用方法,意思是在添加噪声前先测量一下输入信号的功率,再 ...

  8. [Selenium] 自动侦测浏览器版本并下载对应的浏览器驱动

    昨天在群里聊天时,有同学说 Appium 官方支持自动下载兼容的浏览器驱动,想来Selenium也有类似的方法,于是在网上搜索一番.参考了Medium上一篇文章的方法,对步骤进行改进,增加了对多浏览器 ...

  9. 题解 洛谷P2959 【[USACO09OCT]悠闲漫步The Leisurely Stroll】

    原题:洛谷P2959 不得不说这道题的图有点吓人,但实际上很多都没有用 通过题上说的“三岔路口”(对于每一个节点有三条连接,其中一条连接父节点,另外两条连接子节点)和数据,可以那些乱七八糟的路和牧场看 ...

  10. 我的linux学习日记day6

    ping -c ping几次的意思-i 每次的间隔-W 最长响应时间为几秒钟 #!/bin/bash -i $ &>/dev/null #无论正确或者错误结果都输出到/dev/ 用户输入 ...