当前位置: 移动技术网 > IT编程>开发语言>Java > JavaWeb 之Servlet 规律强化(三)

JavaWeb 之Servlet 规律强化(三)

2020年07月24日  | 移动技术网IT编程  | 我要评论

 

 

一.Servlet规律强化

 

1.WEB项目

Servlet服务器Java小程序。

 

 

 

Jar包:

 

 

 

2.​​​​​​​Servlet

 

 

 

 

 

 

3.参数接收

准备环境:

根据表单输入项的name属性,定义一个JavaBean。

 

 

 

 

form.jsp:

<form action="/javaweb_day04_1/d1" method="post">
    <input type="hidden" name="method" value="run2"/>
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="pwd"/><br/>
    爱好:<input type="checkbox" name="hobby" value="run"/>跑步
    <input type="checkbox" name="hobby" value="code"/>编码
    <input type="checkbox" name="hobby" value="swim"/>游泳<br/>
    <input type="submit"/>
</form>

 

 

get:容易出现 中文乱码.

                String 正常 = new String(“乱码”.getBytes(“iso8859-1”),”utf-8”);

post:BaseServlet已经帮我们解决乱码问题。

 

Servlet:

/**
 * 接收参数
 * @return
 */
public String run2(){
    //方式一:toBean.     仅适合于多个参数的获取
    Person person = toBean(Person.class);
    System.out.println(person);
    //方式二:request自带的 getParameter()   适合于获取某一个参数
    //获取不到,返回为null
    String username = getRequest().getParameter("username");
    System.out.println(username);
    String[] hobby = getRequest().getParameterValues("hobby");
    System.out.println(Arrays.toString(hobby));
    return null;
}

 

 

4.程序跳转-请求转发

return “forward:/资源路径?参数列表”

 

return “forward:/index.jsp”  跳转到/index.jsp

return “forward:/d3?method=run2”  跳转到/d3这个servlet上的run2方法

 

 

request作用域: 进行程序之间的数据共享,数据传递

相当于一个Map集合

setAttribute(name,value);-------------- map.put(key,value)

getAttribute(name);  -------------------map.get(key)

removeAttribute(name); ---------------map.remove(key)

 

getRequest().setAttribute(“msg”,”1111”);

getRequest().setAttribute(“msg”,”2222”);//覆盖了1111

 

 

需求1:run3方法跳转到run4方法,传递一个 uname=老王

public String run4(){
    //2、接收数据
    Object uname = getRequest().getAttribute("uname");
    System.out.println(uname);
    return null;
}
public String run3(){
    //1、设置数据
    getRequest().setAttribute("uname","老王");
    return "forward:/d1?method=run4";
}

 

 

request对象:请求信息的封装对象

封装了请求行、头、体

作为程序跳转之间(请求转发:forward:/)的数据传递通道

 

 

小结:

1、请求转发可以 通过request作用域传递数据

2、请求转发可以 跳转到 WEB-INF  return "forward:/WEB-INF/xx"

3、请求转发不可以跳转外网

 

 

 

 

 

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

注: 如果本篇有需要改进的地方或错误,欢迎大神们指定一二~~

本文地址:https://blog.csdn.net/qq_43705131/article/details/107525735

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网