发表于: 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/POST(GET请求、POST请求),决定了那些请求可以使方法运行;
JSP表单提交可以设置浏览器以何种方法访问服务器;
GET请求与POST请求的内容保存位置不同,都可以使用quest.getParameter("参数名")获得,但POST请求需要进行转换编码处理。
明天的计划:把项目整合完成。
评论