web项目是存在缓存问题的:好处就是节省流量节省加载时间。
web项目是存在缓存问题的:坏处就是无法得到理想的正确的结果。
Web缓存存在的两个地方 : 1.浏览器内部--更多工具--清除浏览数据
Web缓存存在的两个地方 : 2.idea项目内部的out目录(加载web项目的缓存目录)
前台发送请求的方式1:通过超链接
<a href="http://www.baidu.com">指向互联网资源</a>
<a href="index.html">指向项目内部的页面资源</a>
<a href="/xxx">指向项目内部的Java资源</a>
前台发送请求的方式2:通过JS
<button id="btn">点击按钮发送一个请求</button>
<script>
document.getElementById("btn").onclick = function (){
location.href = "index.html";//本质依然是超链接
}
</script>
前台发送请求的方式3:通过表单
<form action="index.html" method="post">
账号:<input type="text" name="username"><br>
<input type="submit" value="提交">
</form>
后台如何获取前台发来的请求
答:通过tomcat提供的Servlet类来实现
什么是Servlet:处理前台请求的一个类
如何去创建一个servlet类
1.导入jar包---servet-api.jar 在tomcat的lib目录里面
2.在servlet的包下创建一个Servlet的类
2.1 Servlet的命名规范: XxxServlet 其中Xxx表示什么功能的Servlet
3.继承HttpServlet</p>
4.重写父类的service方法,然后把默认的super删除
5.在类上添加@WebServlet("/Xxx") 注解。表示前台通过什么请求路径访问该类,一般和类名同名
测试如下Servlet</p>
<a href="/TestServlet">通过超链接访问Servlet</a>
<button id="btn">通过JS访问Servlet</button>
<script>
document.getElementById("btn").onclick = function (){
location.href = "/TestServlet";
}
</script>
前台发送携带数据的请求的方式1:通过超链接
<p>语法如下:在URL地址的后面加上?key=value&key=value&key=value的形式即可</p>
<p>注意事项:都是英文状态下的符号,如果含有中文的内容 也无需加引号</p>
<a href="index.html?id=123&name=张三">指向互联网资源</a>
前台发送携带数据的请求的方式1:通过JS
<p>前台发送携带数据的请求的方式2:通过JS</p>
<button id="btn">点击按钮发送一个请求</button>
前台发送请求的方式3:通过表单
注意事项:内部的表达元素都要加上name来修饰。因为后台都是通过name来获取值</p>
<p>注意事项:单选框:加上若干个相同的name即可,记得补充value</p>
<p>注意事项:多选框:加上若干个相同的name即可,记得补充value</p>
<p>注意事项:下拉框:内部的option的value值可以省略的,但是你要知道,如果省略了以option标签的内部为准。如果没省略就以value为准</p>
乱码的补充
需要修改的地方:
1. 修改tomcat的conf文件夹的logging.properties文件 将下面这行改成GBK
#java.util.logging.ConsoleHandler.encoding = GBK 默认是UTF-8
2.File-setting-console编码改成GBK
3.File-setting-FileEncoding 三个地方改成UTF-8
//接受数据的流程:
//1.设置编码
req.setCharacterEncoding("utf-8");
//收集单独独立的数据,例如账号密码性别年龄生日自我介绍等等
//xxx表示前台的参数名是什么 接受返回值全是String 需要自行转换
// String xxx = req.getParameter("xxx");
//收集多个数据:例如爱好 需要遍历 来一一取值
// String[] xxx = req.getParameterValues("xxx");