xqb——第一课知识点总结
一、后台-登录及主页业务
1. 关于js函数:
(1)Math.floor(Math.random()*36)
对小于36的值向下取整
(2)$(function(){…});
jQuery(function($){…});
$(document).ready(function(){…})
这三个的作用是一样的,文档载入完成后执行的函数
2. 关于HTML标签:
(1)role属性
本质上是增强语义性 ,让辅助工具知道该标签的角色(是label还是button等)
(2) label中for 属性
点击 label 中的文字的时候,光标会定位到for 属性相应的 id 标签中
(3)frameset 标签
用来组织多个窗口(框架)。每个框架存有独立的文档
3. 关于servlet:
(1)req.getRequestDispatcher("main.jsp").forward(req, resp); 请求转发
客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的test.jsp,整个流程都是在服务器端完成的,而且是在同一个请求里面完成的。
(2)resp.sendRedirect(req.getContextPath() + "/main.jsp"); 重定向
客户发送一个请求到服务器,服务器匹配servlet,这都和请求转发一样,servlet处理完之后调用了sendRedirect()这个方法,这个方法是response的方法,所以,当这个servlet处理完之后,看到response.senRedirect()方法,立即向客户端返回这个响应,响应行告诉客户端你必须要再发送一个请求,去访问test.jsp,紧接着客户端受到这个请求后,立刻发出一个新的请求,去请求test.jsp,这里两个请求互不干扰,相互独立
(3)另还有一种跳转页面的方法,也就是在Servlet中输出JavaScript代码
PrintWriter out = request.getWriter();out.println("<script>window.location.href = "url"</script>");这种方法和response.sendRedirect()的效率是差不多的,也要向服务器发出再次请求才能跳转到的URL.
(4)service()、doGet()、doPost()
service()是在javax.servlet.Servlet接口中定义的, 在 javax.servlet.GenericServlet 中实现了这个接口
doGet/doPost 是在 javax.servlet.http.HttpServlet 中实现的, javax.servlet.http.HttpServlet 是 javax.servlet.GenericServlet 的子类. 其实所有的请求均首先由 service() 进行处理, 而在 javax.servlet.http.HttpServlet 的 service() 方法中, 主要做的事情就是判断请求类型是 Get 还是 Post, 然后调用对应的 doGet/doPost 执行.
get和post提交的数据量是不一样
一个servlet里可以只写doPost或doGet方法,通常先用doGet(),然后在doPost()中调用doGet()。
例如
get方法可使用URL传参数:
jsp:<a href="SearchById?id=<%=stu.getID()%>">编辑</a>
servlet:
public class SearchById extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
.....
}
}
post方法通过提交表单进行调用:
jsp:<form action="Insert" method="post">
servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
.....
}
}