一、Eclipse的Tomcat部署
image.pngimage.png
1.1找到servers,设置tomcat的根路径、JRE版本、设置tomcat基本配置,修改完记得要保存
image.pngimage.png
1.2将项目发布到tomcat应用服务器上
image.pngimage.png
1.3启动项目后可以通过ip:port/项目名/对应路径来进行访问,想省事看下图
image.png启动后会在eclipse的内置浏览器上打开,直接拷贝浏览器上的路径到谷歌进行调试就好了
http://localhost:8080/Servlet/
1.4webcontent相当于ip:port/项目名/。所以下图的login.html的访问地址直接写http://localhost:8080/Servlet/login.html就好了
image.png1.5web.xml的作用
web.xml会在tomcat启动项目的时候最先被读取执行一次,在项目启动之后就不会再被执行,很多初识配置都会在这里来进行设置
二、servlet+jsp初体验
2.1 创建servlet实现类
创建一个类,继承HttpServlet这个类,然后实现doget和dopost方法
2.2将请求与创建的servlet类绑定起来
设置@WebServlet("/Reg")注解,这样当访问ip:port/项目名/Reg这个请求的时候就会执行doget方法,因为doget方法会接收两个形参Request请求和response响应所以就可以通过请求获取对应的数据,通过response设置对应的给浏览器的响应
2.3 接收请求
通过request.getParameter("要获取的传过来的参数的key");如要在如下请求中获取username的结果使用request.getParameter("username");即可
http://localhost:8080/Servlet/login?username=lck&password=123
2.4 返回响应
我们通过servlet接收到了请求,调用了doget方法,这时我们就可以执行我们自己的代码逻辑并最终得到我们想要给浏览器返回的响应,进行返回。这时候我们返回的结果无非两种
1.页面
- request.getRequestDispatcher("loginSuccess.jsp").forward(request, response);
转发形式的返回,参数不会丢失,地址栏不会改变 - response.sendRedirect("loginError.jsp");
重定向形式的返回,参数会丢失,地址栏会改变
2.数据,大多为json数据
2.5 jsp
jsp可以先简单的理解为能够执行java代码的html。使用场景:
在异步请求等技术还未普及之前,绝大部分的数据只有后台能够使用,html无法直接渲染,这时候需要在html中遍历渲染java数据单纯的依靠html是无法实现的,就需要后端通过jsp来实现页面渲染的工作。比如在注册成功的页面中展示注册时的信息,通过jsp可以轻松的获取到。
要注意的一点是浏览器不会解析jsp当中的java代码,jsp的解析过程是在服务端完成的,所以当访问jsp的时候实际上上在服务端将jsp解析成最终的html代码通过response返回给浏览器的
jsp页面最终会被解析成servlet,如下图在配置好tomcat的情况下是可以进行查看的。
image.png
2.6部分代码
servlet端
@WebServlet("/Reg")
public class RegServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("username");
if("lck".equals(name)){
response.sendRedirect("regError.jsp");
}else{
request.getRequestDispatcher("regSuccess.jsp").forward(request, response);
}
// response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
html
<!-- 请求路径 -->
<form action="Reg">
<div>
<input type="text" name="username">
</div>
<div>
<input type="password" name="password">
</div>
<div>
<input type="submit">
</div>
</form>
三、Session与Cookie
3.1Session介绍
- session储存在服务器端的内存中,可以通过在tomcat的conf文件夹下的context.xml中增加如下代码
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="true"
maxActiveSession="-1"
minIdleSwap="0"
maxIdleSwap="30"
maxIdleBackup="0"
>
<Store className="org.apache.catalina.session.FileStore"
checkInterval="60"
directory="../session/mySession"/>
</Manager>
- 默认过期时间为30分钟,可修改配置来改变时间
- 在cookie没有被禁用的情况下,在后端调用getSession()方法时会在服务端产生一个session对象并将该session对象的id值设置到浏览器的cookie中存为jsessionid,这样当这个浏览器再次访问该服务器时就会用该jsessonid去找到对应的session对象供其使用。可以用这种方式来实现登录功能。现在随着移动端的发展更多使用token来实现登录验证。
- session储存在服务器端,相对较安全,默认储存在内存中,所以不要滥用。
3.2 cookie介绍
- cookie储存在浏览器端,相对不安全,要储存信息重要信息需要进行加密
- 默认过期时间为会话结束即关闭浏览器
- 可用于实现七天免登录等功能
- cookie过期时间单位为秒s
- 要注意cookie的path哪些路径下可以查看对应cookie和domain哪些域名下可以查看对应cookie的设置
网友评论