javaWeb-注意问题



0: 在使用  
<c:if test="${courseCount eq 0}"> 
 </c:if>  判断时,,test="不能有空格"


1: jsp页面作为返回值输出时,,最好用<%  %> 注释。Ajax 才能得到返回值 


:2<fmt:formatNumber value="${scoreList.avgNum }" var="avgNum" pattern="00.00"/>


3:JSTL 输入常量:
   <h1>循环生成10行10列的表格</h1>
     <table border="1">
      <c:forEach var="hang" begin="1" end="10" step="1">
      <tr>
      <c:forEach var="lie" begig="1" end="10" step="1">
       <td><c:out value="a"/></td>
      </c:forEach>
      </tr>
      </c:forEach>


4:格式化日期:
<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${currentTimeStamp}"/> <br/>


5:编码问题:

js 方法编码 和解码


//   编码函数 encodeURI():将非字母、数字 字符转换成ASCII码,以16进制表示
//  译码函数 decodeURI():将被encodeURI()编码过的 ASCII码转换成对应的字符


java  方法解码和编码 


 String     str = java.net.URLEncoder.encode(str,"UTF-8");
 String     str = java.net.URLDecoder.decode(str, "UTF-8");

6: 
在linux下不能这样写


 <a href="${_currConText }/user/userSpace.shtm?loginName=${param.sign lt 1 ? courseEval.loginName : courseEval.uploadLoginName}" target="_blank">
            <span class="ys">${param.sign lt 1 ? courseEval.username : courseEval.uploadUsername}
            </span>
 </a>




应用这段代码
  <c:choose>
                  <c:when test="${param.sign lt 1}">
                     <a href="${_currConText }/user/userSpace.shtm?loginName=${courseEval.loginName}" target="_blank">
                     <span class="ys">${courseEval.username}</span></a>
                  </c:when>


                  <c:otherwise>
                       <a href="${_currConText }/user/userSpace.shtm?loginName=${courseEval.uploadLoginName}" target="_blank">
                       <span class="ys">${courseEval.uploadUsername}</span></a>
                  </c:otherwise>

</c:choose>


java 页面url传值中文编码&解码  :



java 页面url传值中文编码&解码  
 


URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码。


这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码。但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码。


在这里介绍一种解决方法,可以在任何应用部署环境下通用。此方法分两步:


1、在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如:


title=escape(encodeURIComponent(title)); //这是js里的函数


 url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;


2、在服务端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),进行解码。


 


-----------------------------------------------------------------------------


parent.window.location.href 和 iframe中src的乱码问题。


要在这两个url地址中传中文,必须加编码,然后再解码。


编码:encodeURI(encodeURI("包含中文的串"))


解码:java.net.URLDecoder.decode("需要解码的串","utf-8");


 


encodeURI方法是正确的,只是需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文编码成%xy的格式,第二次是对%xy中的%进行编码,%编码成%25。整个传参过程大体应该是:提交页面使用encodeURI(encodeURI("中文"))编码,把最后的编码结果%25xy传递给处理页面的过程中,浏览器获取URL地址(注意openModelDialog方法,浏览器获取不到参数编码)后解码成%xy,然后把%xy传递给处理页面,处理页面使用URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。
总结:
1、汉字出现在URL路径部分的时候不需要编码解码;
2、使用encodeURI进行2次编码;
3、在openModelDialog()打开的模式窗体里没办法用request.getParameter正确获取参数;




                  

你可能感兴趣的:(javaWeb-注意问题)