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.其他随意

转发(上图)与重定向(下图)
在这插入图片描述
重定向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值