web项目的部署&字符集


第一个问题,WEB项目如何导入外部的.jar包
	深入理解项目的部署以及运行的过程
	在IDEA编辑器中写完的这个项目  存在硬盘上 C:用户/账号名/IdeaProject(存储真实的代码文件)
	创建的是一个web项目   执行需要Tomcat容器帮我们管理
	需要将web项目部署在Tomcat内部   (webapps文件夹内)  D:tomcat9/webapps/
	部署的过程本质上是I/O文件读写  必然会耗费很多时间
	(IDEA)编辑器觉得耗费时间  默认的效果没有将真实的文件写入Tomcat 而是写了一个映射关系
	项目修改了部署的路径  现在我们的项目存在了Tomcat内部的webapps内
	我们原来的真实文件代码有两个主要的部分   src web
	发现部署之后的文件只含有web文件夹的内容 src丢掉了
	src不是真的丢掉了  src中存储的.java文件进行编译 .class才能用
	web文件夹下  WEB-INF文件夹  classes文件夹(后来生成)

	项目部署之后
	HTML文件资源 直接读取内容 内容做响应
	Servlet类 可以通过参考web.xml文件 获取类全名 通过反射 从而执行最终方法
	JSP(HTML+Java)   解析---形成一个为了JSP解析而生成的Java类   Tomcat内部 (work文件夹内)
	解析形成的新文件默认也是存在IDEA内的  为了减少耗费的时间


第二个问题	    浏览器发送请求的时候  如果携带了中文的信息
	    控制层接受的时候产生了文字乱码的问题
		请求发送时的方式
		get	在浏览器输入URL点击回车    <a href="">     <form method="get">
		post	<form method="post">
		两种不同请求的区别
		get
		URL看起来很复杂  请求后面会有?拼接一些参数
		只有协议头   没有协议体  只能讲参数拼接在URL上面
		post
		URL看起来很简单  只有请求资源名  没有?拼接
		有协议头和协议体两部分  协议头传递资源名  协议体传递参数信息

		发送请求--->请求Tomcat--->Tomcat有一个默认处理字符集
			Tomcat的配置文件中存储	ISO-8859-1老版本
						UTF-8新版本(Tomcat8之后)
	get请求的处理方式
		发送请求的时候  请求名字 携带的参数信息都在协议头中
		浏览器解析的时候  <meta charset="UTF-8">
			如果Tomcat是老版本 get请求需要如下处理
			String aname = request.getParameter("aname");
			byte[] value = aname.getBytes("ISO-8859-1");
			String newString = new String(value,"UTF-8");
			如果Tomcat是新版本 可以不处理
	post请求的处理方式
		发送请求的时候  请求名字 协议头中
		请求的参数信息是在协议体中(协议体只能传递字节)
		浏览器解析的时候  <meta charset="UTF-8">
		控制层接受的时候已经组合成一个String字符串
			发送请求的时候按照UTF-8形式   拆开字节
			接受的时候request对象直接给我组合(按照平台默认的字符集)成一个String
		在request组合之前告知 按照哪一种字符集进行组合
		request.setCharacterEncoding("UTF-8");


	1.如何在web项目中导入.jar包
		注意项目部署之后   进行一个编译过程   java---class    JSP---java---class
		src不存在    web文件夹中有一个WEB-INF文件夹    classes文件夹
		需要将外部的.jar文件导入到  web文件夹中的WEB-INF文件夹   自己创建一个lib文件夹
	2.请求的时候可能会传递中文
		get	不需要处理		(Tomcat9默认字符集UTF-8)      iso-8859-1
		post	再接收参数之前自己处理    request.setCharacterEncoding("UTF-8");



  • 请求响应流程
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值