java web 博客园_java web 学习

部署项目打成war包

1.自动打包:

File —> Project Structure —> Artifacts —> Add —> Web Application: Archive —> For ..war exploded

Build —> Build Artifacts… —> war —> Build

2.命令行打包:

进入要打包的项目目录:

cd /Users/yuukoiry/IdeaProjects/...

cd web/

打包命令:

jar -cvf xxx.war *

部署运行:

1.将war包复制到tomcat安装目录:/usr/local/apache-tomcat-9.0.0.M4/webapps/

2.终端操作:

cd /usr/local/apache-tomcat-9.0.0.M4/bin/

./startup.sh

3.打开浏览器:

http://localhost:8080/xxx/xx.jsp

二、虚拟目录

41bd9d0c501c11792770238a22555436.png

修改:

8d32019f5eeb3fcac88ff6595c276e25.png

6ac9af7e8c0b6f0f0967d7dcb1884c6f.png

1、创建文件

79d923ae14dc03a3c6027feda1982898.png

2、粘贴到tomcat目录下

e3f817ca255987af8b5c1114529fe302.png

三、Servlet常见配置

1、常用配置

6125513ff900af997e2aeeb94bbede4b.png

2、映射通配符

37e4d0b3f17da9d80187c9bfc1a75e23.png

四、Servlet三种创建方式

1、创建类继承Servlet

2、适配器模式

创建类继承GenericServlet

3、模版方法设计模式

创建类继承HttpServlet

五、Servlet线程安全问题

不要写全局变量,尽量写局部变量

六、Servlet获取配置信息

26ee1b1d2c63f37414b58a0dd056720d.png

f176226dd439517ebe26715a97d8b288.png

beb6faf0be7d4f97dd33a4dcee4df644.png

七、ServletContext

代表整个应用,一个应用只有一个ServletContext;

获取:this.getServletContext()

1、域对象

45c3ea2242c09ae10723df0b7f85f186.png

2、获取全局配置信息

9f34cb3667c9db7821ec753bad0c5beb.png

获取:

6f1deb281f7aaff37cc1b899dedee504.png

3、获取资源路径

(1)配置文件在“WEB-INF”目录下

String path= this.getServletConfig().getServletContext().getRealPath("/WEB-INF/a.properties");

Properties pro=newProperties();

pro.load(newFileInputStream(path));

String value= pro.getProperty("key");

System.out.println("配置文件中key相对的值="+value);

(2)配置文件在“src”目录下

String path= this.getServletConfig().getServletContext().getRealPath("/WEB-INF/classes/a.properties");

Properties pro=newProperties();

pro.load(newFileInputStream(path));

String value= pro.getProperty("key");

System.out.println("配置文件中key相对的值="+value);

(3)配置文件在包名目录下

String path= this.getServletConfig().getServletContext().getRealPath("/WEB-INF/classes/com/demo/servlet/a.properties");

Properties pro=newProperties();

pro.load(newFileInputStream(path));

String value= pro.getProperty("key");

System.out.println("配置文件中key相对的值="+value);

(4)请求转发

this.getServletContext().getRequestDispatcher("/demo5").forward(request, response);//dmeo5是url-pattern的路径

八、HttpServletResponse响应

(1)文字内容响应编码格式设置

//服务器默认的编码为:ISO-8859-1,它不支持中文,tomcat规定的//设置服务器相应编码

response.setCharacterEncoding("UTF-8");//告诉客户端使用什么编码方式//response.setContentType("text/html;charset=utf-8");

response.setHeader("content-type", "text/html;charset=utf-8");

PrintWriter writer=response.getWriter();//客户端响应内容

writer.write("你好,相应内容");

(2)文件下载响应格式设置

/**

* 文件下载*/

//通过路径得到一个输入流

String realPath = this.config.getServletContext().getRealPath("/WEB-INF/classes/北京市道路停车电子收费集中缴费系统.jpg");

FileInputStream fis=newFileInputStream(realPath);//创建字节输出流

ServletOutputStream sos=response.getOutputStream();//得到要下载的文件名;

String fileName = realPath.substring(realPath.lastIndexOf("/")+1);//设置图片名编码格式

fileName=java.net.URLEncoder.encode(fileName,"UTF-8");//告诉客户端要下载文件,Content-Disposition控制是显示还是下载

response.setHeader("Content-Disposition", "attachment; filename=\"" +fileName );

response.setContentType("application/octet-stream;charset=UTF-8");//response.setContentType("image/jpeg");//执行输出操作

int len=1;byte[] b=new byte[1024];while ((len=fis.read(b))!=-1) {

sos.write(b,0,len);

}

sos.close();

fis.close();

九、HttpServletRequest请求

1、参数解释

//获取请求方式

System.out.println("获取请求方式:"+request.getMethod());//返回请求中的参数部分

System.out.println("返回请求中的参数部分:"+request.getQueryString());//返回客户端发出请求时的完整URL

System.out.println("返回客户端发出请求时的完整URL:"+request.getRequestURL());//返回请求中资源名部分

System.out.println("返回请求中资源名部分:"+request.getRequestURI());//当前应用的虚拟目录

System.out.println("当前应用的虚拟目录:"+request.getContextPath());

//获取访问者的ip

System.out.println("域名:"+request.getRemoteHost());

打印日志

获取请求方式:GET

返回请求中的参数部分:name=10&age=20返回客户端发出请求时的完整URL:http://localhost:8080/wxx_bdb/servletHome

返回请求中资源名部分:/wxx_bdb/servletHome

当前应用的虚拟目录:/wxx_bdb

获取请求头信息:

//获取请求头信息

Enumeration headerNames =request.getHeaderNames();while(headerNames.hasMoreElements()) {

String name=(String) headerNames.nextElement();

System.out.println("求头信息------"+name+":"+request.getHeader(name));

}

请求正文信息:

1.获取表单数据的相关方法:

//告诉服务器要使用什么编码,注:浏览器使用的是什么编码传过来的就是什么编码

request.setCharacterEncoding("UTF-8");//得到对应名称的值

String pwd = request.getParameter("pwd");//复选框提供的方法

String[] values = request.getParameterValues("body");//得到表单获取的所有name

Enumeration parameterNames =request.getParameterNames();//得到表单提交的所有值的方法,非常实用

Map parameterMap =request.getParameterMap();//以字节流的方式得到所有表单数据

ServletInputStream inputStream =request.getInputStream();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值