javaweb学习之路(1)request
1.本次练习写一个简单的注册页面
准备工作:首先搭建好服务器tomcat环境,使用的编译软件是eclipse
2.在eclipse中创建一个web工程
3.在webContent文件夹下创建一个register.jsp文件chua
主要代码:在<body>的里面
<form action="show.jsp"method="post"> 用户名:<input type="text" name="uname"/><br/> 密码:<input type="password" name="upwd"/><br/> 年龄:<input type="text" name="uage"/><br/> 爱好: <input type="checkbox" name="uhobbies" value = "唱跳"/>唱跳 <input type="checkbox" name="uhobbies" value = "Rap"/>Rap <input type="checkbox" name="uhobbies" value = "篮球"/>篮球<br/> <input type="submit" value="注册"> </form>
4.在webContent文件夹下创建一个show.jsp文件
主要代码:还是在<body>标签里面
<% //设置编码 request.setCharacterEncoding("utf-8"); String name = request.getParameter("uname"); String pwd = request.getParameter("upwd"); int age = Integer.parseInt(request.getParameter("uage")); String[] hobbies = request.getParameterValues("uhobbies"); %> 注册成功,信息如下:<br/> 姓名:<%=name%><br/> 密码:<%=pwd%><br/> 年龄:<%=age%><br/> 爱好:<br/> <% if(hobbies!=null){ for(String hobby:hobbies){ out.print(hobby+" "); } } %>
5.上机效果:
总结:request:请求对象;存储“客户端向服务端发送的请求信息”
1.request对象的常见方法:
String getParameter(String name) :根据请求的字段名key (input标签的name属性值) ,返回字段值value (input标签的value属性值)
String[] getParameterValues(String name): 根据请求的字段名key ,返回多个字段值value (checkbox)
void setCharacterEncoding("编码格式utf-8") :设置post方式的请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)
getRequestDispatcher("b.jsp").forward(request,response) ; 请求转发 的方式跳转页面 A - > B
ServletContext getServerContext():获取项目的ServletContext对象
2.jsp的执行流程:
第一次访问时:JSP转变成Java再编译成class
第二次访问时:直接访问class文件,如果服务端代码修改了,将会再访问时重新翻译、编译
3.常见错误:
200:一切正常
300/301:页面重定向(跳转)
404:资源不存在
403:权限不足(例如访问a目录,但是a目录设置的是不可见的话会报403)
500:服务器内部错误(代码有误)
4.编码问题:推荐使用"utf-8"
代码成就万世基积沙镇海
梦想永在凌云意意气风发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?