查漏补缺

在这里插入图片描述

客户端(浏览器)先找此目录 C:\Windows\System32\drivers\etc 下的host文件,从里面查看已有域名得到IP地址在进行访问。
如果没有在host文件下找到则走DNS流程。

在这里插入图片描述

目前主流趋势(解耦和)
Hbuilder模拟成一台tomcat服务器访问8020端口号

在这里插入图片描述

Servlet

在这里插入图片描述

继承HttpServlet原理

在这里插入图片描述子类可以用父类的所有方法和属性,如果找不到合适的还可以重写父类的方法。
子类中调用的方法子类中没有就找父类,子类中重写的就调用自己方法。

例如
创建出来的MyServlet继承了HttpServlet,只重写了父类的doGet和doPost方法,tomcat运行时还是会调用父类的service方法,于是就有了上述过程。

Request获取请求参数

  • String getParameter(“表单中的name值”)获取指定的请求参数
  • String[] getParameterValues(“表单中的name值”)获取参数中的一键多值
  • Map<String,String[]> getParameterMap()获取提交的所有参数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /*
     * request 获取客户端提交数据
     */
    //方法getParameter(String key)指定表单中的参数
    String username = request.getParameter("username");
    String password = request.getParameter("pass");
    System.out.println(username+"=="+password);

    //方法getParameterValues()获取一键多值  checkbox  radio
    String[] hobby = request.getParameterValues("hobby");
    System.out.println(Arrays.toString(hobby));
    System.out.println("=============");
    //方法 getParameterMap()获取提交的所有参数
    Map<String,String[]> map = request.getParameterMap();
    for (String key : map.keySet()){
        String[] value = map.get(key);
        System.out.println(key+"="+Arrays.toString(value));
    }
}
	 //获取客户端提交的数据 Map
    Map<String,String[]> map = request.getParameterMap();
    //集合中数据封装到User中
    User user = new User();
    //apache 开发工具类,简化JavaBean开发
    //BeanUtils类,静态方法 populate(JavaBean,map集合)
        BeanUtils.populate(user, map);  //把map集合封装成User对象

重定向与转发 实现登录页面

在这里插入图片描述

 if(flag==true){
        response.sendRedirect( request.getContextPath() );	//重定向到首页
    }else{
        //flag值是false,登录失败,错误信息存储到request域中
        request.setAttribute("msg","用户名或密码错误");
        //转发回登录页面(带上需要显示的数据"msg")
        request.getRequestDispatcher("/login.jsp").forward(request,response);
    }

在登陆页面显示区域加上Java代码用于显示request域中的内容

<%=  request.getAttribute("msg")==null?"":request.getAttribute("msg")   %>

类型强制转换

Object id = map.get("id"); //map取value返回的是object类型

(Long)map.get("id");
 //不一定能转换成功,因为不知道map中之前指定的value是什么类型。
 //若是String类型则转换失败,所以更通用的方法是
 
Long.ParseLong(String.valueOf(map.get("id"))); //强制转换为Long类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值