对框架的用法:
使用框架是不需要掌握它的内部的东西的,因为我不知道您拿到一块CPU后,为什么还要去了解它的运算部件是怎么构成的,我相信大部分人都会去用CPU去组装一台电脑。除非您对它的性能或其它方面不满,并想重新设计它,这时候您应该选择另一块CPU而尽量不去修补手里的这块,这个留给Intel和Amd去做。
所以我觉得能用一种或几种框架是很简单的事,照着几个例子操纵一下就会了。就像您将CPU装配在电脑上一样。如果您非要了解它里面是如何运作的也不是不行,问题是这些框架的本意是将那些复杂的东西向您隐藏,只留给您简易的操作方式。学会了怎么做一个CPU运算部件不代表学会了怎么用CPU。
应用程序还是要面对应用,这才实际,技术再好没有应用场景也无法表达它的优秀。1+1=2和更复杂的算式是很快和很困难被计算出的结果,但只有当它表示一个会计或其它领域意义的时候,它才有价值,否则就只是算式而已,无论简单还是复杂,都没有价值。同样,一个股票模型被设计得再精巧,在民航领域也是没有价值的。了解领域的一切才是重中之重。
所以我觉得能用一种或几种框架是很简单的事,照着几个例子操纵一下就会了。就像您将CPU装配在电脑上一样。如果您非要了解它里面是如何运作的也不是不行,问题是这些框架的本意是将那些复杂的东西向您隐藏,只留给您简易的操作方式。学会了怎么做一个CPU运算部件不代表学会了怎么用CPU。
应用程序还是要面对应用,这才实际,技术再好没有应用场景也无法表达它的优秀。1+1=2和更复杂的算式是很快和很困难被计算出的结果,但只有当它表示一个会计或其它领域意义的时候,它才有价值,否则就只是算式而已,无论简单还是复杂,都没有价值。同样,一个股票模型被设计得再精巧,在民航领域也是没有价值的。了解领域的一切才是重中之重。
我认为穷毕生精力(也许您很聪明,只要1%生)去研究一个团队多年多月的成果中的具体内容是不现实的,我们应该像用定理那样拿来就用,而不必在使用之前再证明一次。
这是因为我们定位的目的不同啊,我想更多的了解应用,把应用做好,您想发明一种更好更有用的框架。所以对我来说会用就够了,或许有一天能够用上您发明的好东西也说不定啊。
学习框架前首先学习GoF模式,培养组件编程概念,你就不会有这么多疑问了。
设计模式什么时候该用什么时候不该用呢?
JSTL异常:
一,java El表达式怎么获取URL上的值:
如url: localhost:8080/1.jsp?a=1
${param.a}
${param.a}
${requestScope.a}
二,<c:forEach>不支持表达式:
<name>items</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
将 <rtexprvalue>设为true则支持表达式了.
JSP中文乱码问题:
1,url中文参数传递乱码:
<%@ page import="java.net.*" contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>My JSP 'csdn.jsp' starting page</title>
</head>
<body>
<br>
<a href="csdn2.jsp?name=<%=URLEncoder.encode("中国", "utf-8")%>">查看</a><br>
</body>
</html>
<html>
<head>
<title>My JSP 'csdn.jsp' starting page</title>
</head>
<body>
<br>
<a href="csdn2.jsp?name=<%=URLEncoder.encode("中国", "utf-8")%>">查看</a><br>
</body>
</html>
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>My JSP 'csdn.jsp' starting page</title>
</head>
<body>
<br>
<%=new String(request.getParameter("name").getBytes("iso8859-1"), "utf-8")%>
<br>
</body>
</html>
<html>
<head>
<title>My JSP 'csdn.jsp' starting page</title>
</head>
<body>
<br>
<%=new String(request.getParameter("name").getBytes("iso8859-1"), "utf-8")%>
<br>
</body>
</html>
出现这个问题的原因在于,URI 参数是使用 UTF-8 编码的,而在 server.xml 中的 Connector
里的 URIEncoding 属性被改成“GBK”了。你把它改回来,改成 UTF-8 就行了,那样使用
request.getParameter("name"); 可以直接得到正确的值。
如果你不想改动 server.xml 那就得转码,因为 Tomcat 默认的 URI 传输采用 ISO-8859-1 的编码。
new String(request.getParameter("name").getBytes("iso8859-1"), "utf-8")
里的 URIEncoding 属性被改成“GBK”了。你把它改回来,改成 UTF-8 就行了,那样使用
request.getParameter("name"); 可以直接得到正确的值。
如果你不想改动 server.xml 那就得转码,因为 Tomcat 默认的 URI 传输采用 ISO-8859-1 的编码。
new String(request.getParameter("name").getBytes("iso8859-1"), "utf-8")
四.在http 的form中用get方法传参数有可能在servlet中得不到这个参数,因此最好用post方法传递.
五.javascript方法名不能用页面的关键字,例如delete之类的.
六、spring+jasperReport生成PDF格式的报表时报java.lang.NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V异常
原因:iText.jar文件过旧,将之改为2.1版就没事了。
七、this.getClass.gerResourse("")得到类路径,用URL.toURI()方法去掉路径中的空格。