发表于: 2025-05-04 21:08:40

0 89


今天完成的任务:学习浏览器与前端交互的知识。

我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理。浏览器中使用 GET  POST 方法向服务器提交数据。

 

JSP相关:

GET 方法:GET方法将请求的编码信息添加在网址后面,网址与编码信息通过"?"号分隔。

                 GET方法是浏览器默认传递参数的方法,一些敏感信息,如密码等建议不使用GET方法。

get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。

通过request.getParameter(“参数名”):获得?后的参数值。

 

          

           POST 方法:一些敏感信息,如密码等我们可以通过POST方法传递,POST提交数据是隐式的

                 POST提交数据是不可见的,GET是通过在url里面传递的(可以看一下你浏览器的地址栏)。

JSP使用getParameter()来获得传递的参数,getInputStream()方法用来处理客户端的二进制数据流的请求。

          

HTML相关:

                  <ul>:无序列表标签,<li>:列表编号,<b>:加粗标签,<p>:段落,

                 <table>:表格 <tr>:表格增加一行,<td>:表格增加一列

                 <form>: 标签用于创建供用户输入的 HTML 表单

                          

                      action:表单提交时跳转的uri地址

                      <input>:表单的属性,规定了用户可以在其中输入数据的输入字段,根据type值为不同功能

                            type=”text”:文本框,可以输入内容。name:该文本框代表的参数名。value:默认值

                            type=submit”:提交按钮,按下后提交。value:按钮上显示的字

                            type=”checked”:复选框,

分析浏览器访问服务器(GET方法)

浏览器访问(GET方法是浏览器默认传递参数的方法)http://localhost:8080/经过拦截和筛选后进入‘/’控制器中,因为操作的方法是GET,与方法中限制的方法类型相同GET,所以方法正常运行,返回”new”给到视图解析器,指向服务器中WEB-INF/jsp/new.jsp

@RequestMapping(value "/",method =RequestMethod.GET)//要点2
public String Create(Model mode) {
    
return "new";
}

new.jsp中创建了一个表单,提交时使浏览器以GET的方法访问http://localhost:8080/main (提交的数据将显示在网址?后面)

<body>
    <h1>
使用GET方法读取数据</h1>

    <form 
action="/main" method="GET">
        
站点名<input type="text" name="name">
        <br />
        
网址<input type="text" name="url" />
        <input 
type="submit" value="提交/>
    </form>

</body>

 

浏览器(GET方法)访问:http://localhost:8080/main 进入 /main’处理器中,因为操作的方法是GET,与方法中限制的方法类型相同GET,所以方法正常运行(如果设置方法限制为POST时,方法限制不符合,该方法将不会运行),返回”main”给到视图解析器,指向服务器中WEB-INF/jsp/main.jsp

@RequestMapping(value "/main",method =RequestMethod.GET)//要点2
public String Main(Model mode) {
    
return "main";
}

main.jsp中通过request.getParameter(“参数“)GET请求中的内容显示

<body>
<h1>
使用 GET 方法读取数据</h1>
<ul>
    <li><p><b>
站点名:</b>
        
<%= request.getParameter("name")%>
    
</p></li>
    <li><p><b>
网址:</b>
        
<%= request.getParameter("url")%>
    
</p></li>
</ul>
</body>


分析浏览器访问服务器(POST方法)

浏览器访问(默认GET):http://localhost:8080/进入处理器‘/’中,返回”newpost”视图

@RequestMapping(value "/",method =RequestMethod.GET)//要点2
public String Create(Model mode) {
    
return "newpost";
}

newpost.jsp中创建了一个表单,提交时使浏览器以(POST方法)访问http://localhost:8080/mainpost  ,请求的内容隐式(放置在请求的实体内容中)的提交。

<body>

<form 
action="mainpost" method="POST">
    
站点名<input type="text" name="name">
    <br />
    
网址<input type="text" name="url" />
    <input 
type="submit" value="提交/>
</form>

</body>

浏览器访问(POST方法):http://localhost:8080/mainpost  进入处理器‘/mainpost’中,返回”mainpost”给到视图解析器,返回WEB-INF/jsp/main.jsp界面给到浏览器

@RequestMapping(value "/mainpost",method =RequestMethod.POST)//要点2
public String Main(Model mode) {
    
return "mainpost";
}

mainpost.jsp中通过String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");POST请求中的内容转为字符串。再将字符串显示出来(使用request.getParameter("name")获得POST方法中的参数,存在中文乱码的问题需要解决)

<body>
<h1>
使用 POST 方法读取数据</h1>
<ul>
    <li><p><b>
站点名:</b>
        
<%
            
// 解决中文乱码的问题
            
String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
        %>

        <%=
name%>
    
</p></li>
    <li><p><b>
网址:</b>
        
<%= request.getParameter("url")%>
    
</p></li>
</ul>

 

关键点:

控制器中方法限制网站的访问方式method =RequestMethod.GET/POSTGET请求、POST请求),决定了那些请求可以使方法运行;

JSP表单提交可以设置浏览器以何种方法访问服务器;

GET请求与POST请求的内容保存位置不同,都可以使用quest.getParameter("参数名")获得,但POST请求需要进行转换编码处理。


明天的计划:把项目整合完成。


返回列表 返回列表
评论

    分享到