9.20
四个作用
1)可以获取 上下文路径
2)可以web.xml文件中 全局参数
3)可以去作为"请求转发"
--- 后端将数据 --- 存储在"域对象", 可以页面跳转
4) 可以作为 域对象 ---- 就是在不同的servlet之间进行数据传输(数据共享)
/**
* ServletContext: 代表整个web应用程序 全局对象
* web应用程序启动:就会创建对象
* 作用1:
* 可以获取上下文路径
* public String getContextPath()
*
场景:
* 在xxx.jsp/xx.html文件中
*
* 一些标签
超链接的href属性
* 图像标签src属性
* 导入外部css文件 <link href="xxx.css" rel="stylesheet"/>
* 导入外部的js文件 <script src="xx.js"></script>
*
* 在书写导入路径的时候: 写上下文路径,否则404
*
* 这些src/href...都属于"浏览器行为",必须带web工程的上下文路径
*
*
*
*/
public class ContextDemo extends HttpServlet {
//接收get请求
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//这个方法在请求对象就有,简写格式
//HttpServletRequest----public String getContextPath()
String contextPath = request.getContextPath();
System.out.println(contextPath);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
/**
* ServletContext全局对象的作用2:
* 可以获取全局参数
* <context-param>
* 参数名称
* <param-name>encoding</param-name>
* 参数值
* <param-value>utf-8</param-value>
* </context-param>
*
* 三阶段前期: <context-param> 可以加载某个配置文件...
*/
public class ContextDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取web.xml中全局参数encoding对应它内容
//1)获取全局对象
ServletContext servletContext = this.getServletContext();
//2)String getInitParameter(String var1); 通过初始化全局参数名称获取参数值
//Enumeration<String> getInitParameterNames();:全局对象获取所有初始化的参数名称
String encoding = servletContext.getInitParameter("encoding");
System.out.println(encoding);
System.out.println("---------------------------------------------") ;
Enumeration<String> en = servletContext.getInitParameterNames();
while(en.hasMoreElements()){
String name = en.nextElement();//获取元素 ---参数名称
//String getInitParameter(String var1)
String value = servletContext.getInitParameter(name);
System.out.println(value);
}
System.out.println("---------------------------------------------------");
//接收post提交参数
//解决post中文乱码
request.setCharacterEncoding(encoding);
//接收参数
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+"---"+password) ;
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
请求转发的原理及注意事项
/**
* ServletContext的作用3(重点)
* 请求转发:后端能够控制的一种页面跳转(可以在不同的servlet之间进行跳转)
*/
public class ContextDemo3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//一步走:简写格式
//public RequestDispatcher getRequestDispatcher(String path)在HttpServletRequest就有
//request.getRequestDispatcher("/contextDemo4").forward(request,response);
//WEB-INF下面的资源文件:只能后端的请求转发访问,不能直接访问,为了安全!
request.setAttribute("name","高圆圆");
request.getRequestDispatcher("/WEB-INF/adv.jsp").forward(request,response);
System.out.println("请求转发成功");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
//接收跳转的请求public class ContextDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
System.out.println("进入到了ContextDemo4的doGet方法了....");
response.getWriter().write("hello,contextDemo4接收了");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
文章浏览阅读2.7k次。计算π的历史圆周率π可能是科学界内外最广为人知的自然常数了。早在公元5世纪时,南朝宋数学家祖冲之用割圆法将圆周率计算到小数点后7位数字。大约同一时间,印度的数学家也将圆周率计算到了小数点后5位。历史上首个π精确无穷级数公式(即莱布尼茨公式)直到约1000年后才由印度数学家发现。20世纪以来,随着计算机技术的快速发展,π的精度也在极速提高。截至2019年,π的十进制精度已高达1013位。虽然几乎所有..._chudnovsky算法
文章浏览阅读141次。▼相信大家都看过一些大神做CAD,那个图纸真是做的又快又好看!当然大神们其实也就基础好一点,把快捷键记得过目不忘,所以接下来小编就教大家一个非常Skr的方法,保证你对这些快捷键过目不忘,文末更有免费鼠标垫领取,千万别错过哦!这个方法就是建立我们的思维导图了,文字看了可能会忘记,但是通过导图的方式,就会变成思维图形,更加符合我们大脑的思考习惯,就可以牢牢记住这些快捷键啦:▼例如我们看到下面的就是绘图..._苹果cad快捷键
文章浏览阅读7.2k次,点赞7次,收藏60次。第七章 MATLAB的GUI 程序设计Chapter 8: Design of MATLAB of GUI programGUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。目前90%以上的应用程序和软件都是在GUI下运行的。MATLAB有两种GUI用户界面控件的创建方式,基于命令行的方式用程序来制作和基于GUI的方式制作。这里主要介绍基于GUI的方式。MATLAB 的._制作一个曲面光照效果的演示界面,如图所示,三个弹出式菜单分别用于选择曲面形式、
文章浏览阅读2.1k次。参考openwrt 快速入门1.环境搭建1.1Ubuntu dockerhttps://www.runoob.com/docker/ubuntu-docker-install.html1.1.1使用官方安装脚本自动安装安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunps: 我已经放弃用deepin编译旧版openwrt ,修复了十几个bug还是有bug,无敌下载14.04版本docke_undefined reference to `llseek
文章浏览阅读81次。kubectx:用于切换kubernetes context kube-ps1:为命令行终端增加$PROMPT字段 kube-shell:交互式带命令提示的kubectl终端kube-shell开源项目kube-shell可以为kubectl提供自动的命令提示和补全,使用起来特别方便,推荐给大家。Kube-shell有以下特性:命令提示,给出命令的使用说明 自动补全,列出可选命令并可以通过tab键自动补全,支持模糊搜索 高亮 使用tab键可以列出可选的对象 vim模式M..._kube_ps1关闭
文章浏览阅读1k次,点赞11次,收藏9次。此报错的意思是请续订默认配置,就是让你去一级一级的删除,首先删除你设置的允许vlan通过的命令,然后去取消掉更改的端口类型命令(就是在配置命令前面加一个undo),再去更改端口类型就成功了。此报错的意思是已经加入了接口,不能在修改模式,所以需要先去把端口全部删除,在修改模式即可成功。他的意思就是说这个IP地址已经配置了,不需要在配置了。2.修改链路聚合模式的时候。3.更改IP地址的时候。_ensp配置路由地址时错误
文章浏览阅读8.8k次。通过蓝牙的麦克风进行录音MainActivity.javapackage com.example.bluetothrecord;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.In_android 蓝牙麦克风采集mic音频 无声
文章浏览阅读1.1k次。http://www.renaissancesoftware.net/blog/archives/430http://www.renaissancesoftware.net/blog/archives/450It’s a new year; last year was a leap year; so the quadrennial reports of leap y_setyearanddayofyear
文章浏览阅读1.6w次,点赞2次,收藏20次。把字符串分割成等长的若干字符串,根据特定字符分割字符串_vue 分割字符串
文章浏览阅读1.1k次。一、病人分类的例子让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。 症状 职业 疾病 打喷嚏 护士 感冒 打喷嚏 农夫 过敏 头痛 建筑工人 脑震荡 头痛 建筑工人 感冒 打喷嚏 教师 感冒 头痛 教师 脑震荡现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?根据贝叶斯..._朴素贝叶斯分类器 例子
文章浏览阅读527次。↵下面是我在把mysql数据库转换为sqlserver数据库时候遇到过的一些错,踩过的坑,把它总结下来防止以后再出错。报错 1:com.microsoft.sqlserver.jdbc.SQLServerException: 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'user_student'中的标识列指定显式值。出错原因:当mysql数据库转换为sqlserver数据库时,如果第一个id设置为自动递增,那么String sql = "..._mysql 数据导出在sqlserver不能用
文章浏览阅读1.9k次,点赞4次,收藏27次。记录常用数据结构(栈、队列、数组、列表、字符串、集合等),在 Java 中如何使用它的实现类。_javalist集合map组合刷题 leetcode