JSP之路

编程入门 行业动态 更新时间:2024-10-21 03:33:02

JSP<a href=https://www.elefans.com/category/jswz/34/1770107.html style=之路"/>

JSP之路

使用post提交的时候参数有中文时,在接收页面接收前必须对参数进行编码 request.setCharacterEncoding("UTF-8");

解决获取中文乱码问题 使用URLEncoder解决无法在Cookie当中保存中文字符串问题 request.setCharacterEncoding( "utf-8" ); String username = URLEncoder.encode(request.getParameter( "username" ), "utf-8" ); String password = URLEncoder.encode(request.getParameter( "password" ), "utf-8" ); URLEncoder就是将URL中特殊部分进行编码。URLDecoder就是对特殊部分进行解码 将要显示的文字进行URLDecoder解码 JSP全程Java Server Pages,是一种动态网页开发技术
  • 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件
  • 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本
  • JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等
  • JSP页面可以与处理业务逻辑的servlets一起使用,这种模式被Java servlet 模板引擎所支持
JSP是Java EE不可或缺的一部分,是一个完整的企业级应用平台。这意味着JSP可以用最简单的方式来实现最复杂的应用

  • 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
  • 与纯 Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
  • 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
  • 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
  • 与静态HTML相比:静态HTML不包含动态信息
  • JSP结构

JSP常用的三个page指令:language表示编程语言、import表示导入的java包、contentType表示文件格式和字符编码
JSP三大指令元素:include、page、taglib
JSP注释: 1、HTML的注释:     <!--html注释-->  //客户端可见 2、JSP的注释:          <%--html注释--%>  //客户端不可见 3、JSP脚本注释:       //单行注释          /**/多行注释
JSP声明: <%! Java代码%>
JSP表达式: <%=表达式%>      //注意:表达式不以分号结束

以返回值的方式打印内容 <%=printMultiTable2(out) %> 以脚本的方式输出内容 <%printMultiTable2(out); %>

JSP内置对象 1、内置对象简介      jsp内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象 内置对象                                                                      描述 pageContext                                                       JSP的页面容器 request                                                               得到用户的请求信息 response                                                             服务器想用户端的回应信息 session                                                                用来保存每一个用户的信息 application                                                          表示所有用户的共享信息 config                                                                 服务器配置,可以取得初始化参数 out                                                                     页面输出(向浏览器输出) page                                                                   表示从页面中显示出来一个Servlet实例 exception                                                            表示JSP页面所发生的异常,在错误页中才起作用
2、四种作用域范围 page:只在一个页面中保存属性,跳转之后无效 request:只在一次请求中保存属性,服务器跳转后依然有效 session:在一次会话范围中保存,无论何种跳转都可以使用,但是新开浏览器无法使用 application:在整个服务器上保存,所有用户都可以使用 3、out out对象常用方法如下: 1、void println()向客户端打印字符串 2、void clear()清除缓冲区的内容,如果在flush之后调用会抛出异常 3、void clearBuffer();清除缓冲区的内容,如果在flush之后调用不会抛出异常 4、void flush()将缓冲区内容输出到客户端 5、int getBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为0 6、int getRemaining()返回缓冲区还剩余多少可用 7、boolean isAutoFlush()返回缓冲区满时,是自动清空还是抛出异常 8、void close()关闭输出流 4、request/response


获取单个数据:<%=request.getParameter("username") %><br> 获取多个数据:<%String [] favorites = request.getParameterValues("favorite"); for(int i=0 ; i<favorites.length;i++){ out.println(favorites[i]+"&nbsp;&nbsp;"); } %>
存储请求中的属性和返回指定属性的属性值: <%request.setAttribute("password","123456");%> 密码:<%=request.getAttribute("password") %>
请求体的MIME类型:<%=request.getContentType() %><br> 协议类型及版本号:<%=request.getProtocol() %><br> 服务器主机名:<%=request.getServerName() %><br> 服务器端口号:<%=request.getServerPort() %><br> 请求文件的长度:<%=request.getContentLength() %><br> 请求客户端的IP地址:<%=request.getRemoteAddr() %><br> 请求的真实路径:<%=request.getRealPath("dologin.jsp") %><br> 请求的上下文路径:<%=request.getContextPath() %> <br>

重定向:     response.sendRedirect("dologin.jsp");       请求转发:        request.getRequestDispatcher("request.jsp").forward(request,response);
5、session      当把所有和对应网站的页面都关了,那么,该网站分配给该用户的session结束

getCreationTime()会返回session创建时间,但是是一个数字串,要通过SimpleDateFormat该格式 <%     SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date d = new Date(session.getCreationTime()); %> session创建时间:<%=sdf.format(d) %>
session的ID编号:<%=session.getId() %><br> 定义属性,即使页面调转也可以获取
session.setAttribute("username","admin"); session中获取用户名:<%=session.getAttribute("username") %><br> 获取所有定义好的session属性的名称: String [] names = session.getValueNames(); for(int i = 0 ; i<names.length;i++) { out.println(names[i]+"&nbsp;&nbsp;"); }
设置当前session最大生成期限  单位是秒
session.setMaxInactiveInterval(10); 1 setProperty动作会自动将表单提交的内容自动匹配到javaBean中(实例化并且赋值) <jsp:useBean id="myUsers" class="com.po.Users" scope="page"/> <h1>setProperty动作元素</h1> <hr> <!-- 根据表单自动匹配所有的属性 --> <jsp:setProperty property="*" name="myUsers"/>
2 根据自己设定固定的几个属性匹配 <jsp:useBean id="myUsers" class="com.po.Users" scope="page"/> <h1>setProperty动作元素</h1> <hr> <!-- 根据表单自动匹配所有的属性 --> <jsp:setProperty property="username" name="myUsers"/>
3 和表单无关,自己设置值给javabean <jsp:setProperty property="username" name="myUsers" value="冰玉"/> < jsp:setProperty property = "password" name = "myUsers" value = "88888" />
4 跟request参数关联 通过URL传参数给属性赋值 < jsp:setProperty property = "password" name = "myUsers" param = "mypass" /> 根据地址栏的参数名获取参数值赋值给property
getProperty <!-- 使用传统的表达式获取用户名和密码 -->        用户名: <%= myUsers.getUsername() %> < br >        密码: <%= myUsers.getPassword() %> < br > <!-- 使用getProperty方式获取用户名和密码 -->         用户名: < jsp:getProperty property = "username" name = "myUsers" />< br >        密码:  < jsp:getProperty property = "password" name = "myUsers" />< br > forward动作 语法: <jsp:forward page="URL"/> 等同于: request.getRequestDispatcher("/url").forward(request,response); <jsp:forward page="user.jsp"/>     相当于服务器内部跳转 等价于:    <% request.getRequestDispatcher("user.jsp").forward(request,response);  %>
Param动作 语法:     <jsp:param  name="参数名"  value="参数值"> 常常与<jsp:forward>一起使用,作为其的子标签 在使用forward跳转之前可通过Param动作传递一些参数 在跳转后的页面使用     request.getParameter("name");来获取 实现DBHelper类型 String driver = "com.mysql.jdbc.Driver";  //数据库驱动 //链接数据库的URL地址 String url  =  "jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8 String username="root";  //数据库的用户名 String password="";  //数据库的密码

更多推荐

JSP之路

本文发布于:2024-03-23 23:53:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744326.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:之路   JSP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!