配置欢迎页面
在web.xml中添加以下代码, 访问工程根路径的时候会自动找到该列表内的请求路径
<welcome-file-list> <welcome-file>HomeServlet</welcome-file> </welcome-file-list>
同步请求和异步请求
同步请求: 返回的内容包括页面和数据, 整个页面内容刷新使用
通过浏览器地址栏, 超链接,form表单发出请求
异步请求: 返回的内容只有数据,局部页面内容刷新使用
通过ajax发出异步请求
前后端分离:服务器端接收到请求后不需要考虑这个请求是浏览器发出的还是客户端app发出的, 一视同仁 统统只返回数据即可. 对于后端Java程序员而言只需要开发一套业务代码即可, 要想实现前后端分离必须要求 浏览器发出的请求必须是异步请求, 这样网站的所有功能都是静态页面里面通过Ajax发出异步请求实现
JSON
JSON是一个类似于XML的轻量级数据封装格式(数据交换格式).
<books> <book> <name>Java基础</name> <author>苍老师</author> <price>5</price> </book> <book> <name>Java基础</name> <author>苍老师</author> <price>5</price> </book> </books>
json:格式 [{“name”:“Java基础”,“author”:“苍老师”,“price”:“5”},{“name”:“Java基础”,“author”:“苍老师”,“price”:“5”}]
为什么使用JSON?
服务器和客户端之间可能会传递比较复杂的数据内容, 这个数据又必须保存到字符串中,那么保存到字符串中的数据,必须按照某种特定的格式保存,不然不利于客户端获取里面的数据,JSON格式就是目前最流行使用率最高的一种数据交换格式.
如何将服务器里面的复杂数据转成JSON?
服务器中的各种数据一般都会封装到某个实体中, 通过现有的三方框架可以非常便捷的将对象转成json字符串
AJax发出的异步请求和JSON的关系
AJax是前端开发中发出异步请求的技术, 发出异步请求服务器在进行处理时一般给客户端返回的只有数据没有页面, 那么当返回的数据比较复杂时就需要使用JSON字符串将数据封装到JSON字符串中,便于客户端进行处理.
实现加载更多步骤
home.html里面添加加载更多按钮 并且给按钮添加点击事件,在点击事件中通过ajax向LoadMoreServlet发出异步请求 把当前已有的图片数量传递过去
创建LoadMoreServlet, 获取参数 创建ProductDao 调用laodMore(count)的方法
将查询到的list集合 转成json字符串传递给客户端
在ajax发请求的地方得到数据 把数据显示到页面中
浏览量+1步骤
DetailServlet里面 通过id查询作品详情之前 先让作品的viewCount+1 , 调用dao里面的addViewCount(id) 方法
实现dao中的addViewCount即可
点赞功能步骤
1. 在detail.html页面中,通过jQuery给点赞按钮添加点击事件,在事件中发出ajax请求, 往LikeServlet发出请求,同时将当前页面作品的id传递过去
2. 创建LikeServlet 留下doGet方法 获取id,创建ProductDao 调用addLikeCount(id)方法,调用完之后再次调用findById(id)的方法获取文章信息,最后将文章信息中的点赞数量返回给客户端
3. 在detail.html页面中发出请求的地方,在success方法中得到服务器返回的点赞数量,通过jQuery代码将页面中的点赞数量修改掉
Filter过滤器
什么是过滤器:
Filter使用方式有点类似于Servlet,需要配置一个或多个url, 当访问指定的这个url的时候,Tomcat会先访问Filter,在Filter里面放行之后才能够访问对应的Servlet,可以将多个Servlet中重复的代码写到Filter过滤器里面,从而提高开发效率.
如何使用过滤器
创建Filter, 在filter类的doFilter方法中写之前写在Servlet中需要重复的代码, doFilter方法是用来控制是否允许继续访问Servlet的方法,执行代表允许不执行则被拦截
在web.xml文件中配置处理的url 如果是Servlet3.0需要在注解里面写拦截的url
//@WebFilter(urlPatterns = {"/ShowSendServlet","/DelServlet"})
url-pattern的几种设置方式
精确匹配: /ShowSendServlet, /DelServlet
后缀匹配: *.jpg *.png *.html 可以实现图片防盗链
路径匹配: /images/*
全部匹配: /*