IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> JavaWeb笔记(1) -> 正文阅读

[开发测试]JavaWeb笔记(1)

maven镜像

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>        
</mirror>

web-xml最新的头

<?xml version="1.0" encoding="utf-8" ?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
</web-app>

注册Servlet和设置映射

<servlet>
    <servlet-name>为Servlet取个名字</servlet-name>
    <servlet-class>这个类文件在项目中的路径</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>上面取的名字</servlet-name>
    <url-pattern>/web里的相对地址</url-pattern>
</servlet-mapping>

上下文环境(ServletContext)

在doGet和doPost方法中,通过this.getServletContext()方法获得ServletContext对象

  1. 可以调用web.xml<context-param>的数据
    <context-param>里的数据以键值对的方式存在
    比如:
 <context-param>
    <param-name>mybatisUrl</param-name>
    <param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
 </context-param>
  1. 可以调用项目上下文环境的数据

转发(dispatcher)和重定向

都是打开了另一个网页,但是转发的url不会改变。

举个例子理解下原型:
需求是顾客A要买牛肉,售货员B不卖牛肉,售货员C卖牛肉,但是顾客A只认识B。
转发:A告诉B要买牛肉,B找到C说:A要买牛肉,C给了B,B再拿给A。
重定向:A告诉B要买牛肉,B告诉A:C卖牛肉,A找到了C买了牛肉。

属性类(Properties)

这是一个util包下的类,用于读取配置文件的信息。

关于资源导出失败

<!--配置资源导出类型,防止资源导出失败-->
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

读取.properties文件

Properties properties = new Properties();//实例化Properties对象
//InputStream resourceAsStream = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
//通过context对象把.properties文件加载成流
properties.load(resourceAsStream);//通过流把文件内容加载到对象里
String username = properties.getProperty("username");//通过key获得value的字符串

请求和响应对象

响应对象: HttpServletResponse
用途:
1.向浏览器输出信息
2.下载文件

web下载文件的头信息

resp.setHeader("Content-disposition","attachment;filename="+filename);
//filename是自己定义的文件名
//这本质上是个键值对 resp.setHeader(key,value);

文件下载模板

请求该servlet会跳到后台运行下载任务

//1.要下载文件的路径
String realPath = this.getServletContext().getRealPath("\\WEB-INF\\classes\\图片.jpg");
System.out.println("下载文件的路径:"+realPath);
//2.下载的文件名
String filename = realPath.substring(realPath.lastIndexOf("\\") + 1);// '/'后面
//3.设置想办法让浏览器能够支持下载我们需要的东西
resp.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode(filename,"utf-8"));
//4.获取下载文件的输入流
FileInputStream fis = new FileInputStream(realPath);
//5.创建缓冲区
int len = 0;
byte[] buffer = new byte[1024];
//6.获取OutputStream对象
ServletOutputStream os = resp.getOutputStream();
//7.将FileOutputStream流写入到buffer缓冲区,将使用OutputStream将缓冲区中的数据输出到客户端
while ((len = fis.read(buffer))>0){
    os.write(buffer,0,len);
}
//8.关闭
os.close();
fis.close();

页面中文编码

resp.setHeader("Content-Type","text/html;charset=UTF-8");
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章           查看所有文章
加:2022-04-18 18:12:40  更:2022-04-18 18:15:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:24:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码