JSP之路

    xiaoxiao2021-03-25  115

    使用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]+"  ");         }         %> 存储请求中的属性和返回指定属性的属性值: <%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]+"  ");                 }       设置当前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="";  //数据库的密码

    转载请注明原文地址: https://ju.6miu.com/read-6042.html

    最新回复(0)