java后端开发知识点总结(一)
1. 前端如何向后端传值?
- get/post:“key=value&key1=value1”
- form表单:name属性
- ajax请求中:data{}属性
后台如何接收数据?
String dname = request.getParameter("dname");//name的值与key
//批量传“A=001&A=002&A=003”String ds[] = request.getParameterValues("A");
2. 后端如何向前端传值?
- 传统请求:通过转发或重定向或相应
//转发request.setAttribute("ddd",depts);request.getRequestDispatcher("/list.jsp").forward(request,response);//重定向response.sendRedirect("/oa/dept/list");
- 前台取?
<c:forEach items="${ddd}" var="det" varStatus="deptStatus"> <tr> <td>${deptStatus.count}</td> <td>${det.deptno}</td> <td>${det.dname}</td> <td> <a href="javascript:void(0)" onclick="del(${det.deptno})">删除</a> <a href="dept/detail?f=edit&deptno=${det.deptno}">修改</a> <a href="dept/detail?f=detail&deptno=${det.deptno}">详情</a> </td> </tr> </c:forEach>
- Ajax请求:(JSON传)
String jsonStr = JSON.toJSONString(listArea); response.getWriter().print(jsonStr);
3. 何时采用POST?GET?
(邮寄) POST? “增 删 改” “登陆功能密码传递时(安全)”
(取)GET?“查”
4. 模板方法设计模式?(解决类爆炸)
一次请求对应一个Servlet----->>一个业务对应一个Servlet,一个实现方式对应一个方法
@WebServlet("*.do")public class studentServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); System.out.println("Welcome"); String servletPath = request.getServletPath(); if ("/delete.do".equals(servletPath)) { delete(request,response); } else if ("/update.do".equals(servletPath)) { update(request,response); } else if ("/add.do".equals(servletPath)) { add(request,response); } else { select(request,response); } } private void update(HttpServletRequest request, HttpServletResponse response) { } private void add(HttpServletRequest request,HttpServletResponse response) { } private void select(HttpServletRequest request, HttpServletResponse response) { } private void delete(HttpServletRequest request, HttpServletResponse response) { }}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学生管理系统</title></head><body><h1>学生管理系统</h1><a href="/ex/add.do">增加学生信息</a><hr><a href="/ex/delete.do">删除学生信息</a><hr><a href="/ex/update.do">更改学生信息</a><hr><a href="/ex/select.do">查询学生信息</a></body></html>
5. UUID的应用?
由一组数字,字母,四个横杠组成,实际开发当中,采用UUID做数据库的主键,保证唯一性。
package test;import java.util.UUID;/** * @Author zuozuo * @Date 2022-05-30 * @Description:UUID的应用 **/public class uuidTest { public static void main(String[] args) { /*UUID uuid = new UUID();*/ UUID uuid = UUID.randomUUID(); String id = uuid.toString(); System.out.println(id); System.out.println(id.length()); String idd = id.replaceAll("-", ""); System.out.println(idd); }}
6.转发与重定向的区别?
转发是一次请求,重定向是两次请求。
1.使用了request域的时候,必须用请求转发。
2.当前后两个页面有数据传递时,例如查询了数据需要在页面显示时,用请求转发
3.访问站外资源的时候用重定向。
4.当没有数据传递,例如做了更新操作跳转到其他页面,就用重定向。
5.其他随意
转发(上图)与重定向(下图)