First J2EE Application心得记录 JavaJavaScriptServletJSP应用服务器
程序员文章站
2022-05-30 11:00:43
...
自己动手写了个J2EE应用,其实没有这么夸张了,只是用到其中很小的内容,感觉有些杀鸡用牛刀了,哈哈。
现在随笔一下:
希望Web页面打开时为所需的字符编码
问题起源:浏览器中看到的 Jsp/Servlet 页面中的汉字怎么都成了"?"。
页面开始处加上:
在<head>和</head>之间加上:
使用css样式表单
在<head>和</head>之间加上:
href根据url来定位,可以多写几个来显示。
request中取数组形式的参数
当在页面上提交了多个同名参数A后,在request中取参数A的结果为一个String
数组,取法为:
getParameter()取出的为String对象
所有用这个方法取出的对象都是String对象,可以根据需要再作转换。如果取的参数不存在,则返回null;如果参数存在但没有值,返回空字串,即""。所以在比较时应该遵循对象的比较原则。
request中加入其他对象
使用如下语句加入对象:
取出request中加入的对象
使用如下语句取出对象:
OBJ为obj的类名。此处取出时需要考虑类型的转换。
页面重定向
如果使用:
response.sendRedirect("~~~");
使用前提是没有向response写入任何信息,而向request加入的新信息或者新对象是不会被专抛到新的资源上的。重定向成功后,url停在重定向后的url上。
如果使用:
其实,JSP和Servlet是类似的
开始同事说的时候不解,后来仔细琢磨,发现确是如此。
FORM提交方式
方式为get:会在url中显示出来参数=值。
方式为post:不会在url中显示出来。
FORM中提交中文字符
注:我这个比较特殊些,都是基于UTF-8的编码处理的
在用request取出来之前需要设置request的Encoding,语法如下:
返回生成页面字符问题
JBuilber中的Servlet向导生成的代码中有讲解。
提交的数据验证问题
应该在客户端和服务器端都进行验证,比如是否为空,或者格式是否正确。
浏览器客户端当然首选JavaScript,服务器端使用Exception流程来处理比较好。
在服务器端验证数据
假设我们仅仅需要验证是否为空和能够分析出数字来,可以生成一个类来完成验证工作。当出现为空或者无法分析数字出来时,我们分别抛出带msg的相应的异常。
[color=green]
[color=green]
这个方法用来验证是否可以分析出数字来,之后我们使用打印信息方法来告诉客户出错在哪里。
使用时捕获对应的异常,在处理中调用该打印方法来输出信息。
在客户端验证数据
主要是用JavaScript来处理。
代码网上的例子很多,关键一点就是需要用对象来想象form中的name即可,然后生成function来判断信息,不正确就return false;即可。
哎,弄个小型的Web Application需要知道的东西还真不少,起码HTML要知道吧,URL概念要很清楚吧,JSP技术就不用说了,JavaScript也少不了,数据库就别谈了,呵呵,Servlet也要知道,否则怎么去理解JSP和Servlet是类似的呢。好了,Web Server需要搞一个吧,还好,有个Tomcat比较省事点,天,还有什么要会的,当然是Java基础了。
现在随笔一下:
希望Web页面打开时为所需的字符编码
问题起源:浏览器中看到的 Jsp/Servlet 页面中的汉字怎么都成了"?"。
页面开始处加上:
<%@ page contentType="text/html; charset=UTF-8" %>
在<head>和</head>之间加上:
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">此处要注意的是,使用UTF-8编码的页面需要保存时以UTF-8的编码形式保存页面文件。如果声明为其他编码,则选择普通编码保存即可。
使用css样式表单
在<head>和</head>之间加上:
<LINK rel="stylesheet" type="text/css" href="./css/query.css">
href根据url来定位,可以多写几个来显示。
request中取数组形式的参数
当在页面上提交了多个同名参数A后,在request中取参数A的结果为一个String
数组,取法为:
String[] A = request.getParameterValues("A");;
getParameter()取出的为String对象
所有用这个方法取出的对象都是String对象,可以根据需要再作转换。如果取的参数不存在,则返回null;如果参数存在但没有值,返回空字串,即""。所以在比较时应该遵循对象的比较原则。
request中加入其他对象
使用如下语句加入对象:
request.setAttribute("objname", obj);;该obj可以为任何类型的对象。
取出request中加入的对象
使用如下语句取出对象:
OBJ sss = (OBJ);request.getAttribute("objname");;
OBJ为obj的类名。此处取出时需要考虑类型的转换。
页面重定向
如果使用:
response.sendRedirect("~~~");
使用前提是没有向response写入任何信息,而向request加入的新信息或者新对象是不会被专抛到新的资源上的。重定向成功后,url停在重定向后的url上。
如果使用:
RequestDispatcher rd = request.getRequestDispatcher("~~~");; rd.forward(request, response);;则将request和response(包括新加入到request中的信息和对象)转抛到新的资源上。重定向成功后,url停在调用rd的资源上,所以,使用此方式要注意新资源~~~应该以调用rd的资源的url为准。
其实,JSP和Servlet是类似的
开始同事说的时候不解,后来仔细琢磨,发现确是如此。
FORM提交方式
方式为get:会在url中显示出来参数=值。
方式为post:不会在url中显示出来。
FORM中提交中文字符
注:我这个比较特殊些,都是基于UTF-8的编码处理的
在用request取出来之前需要设置request的Encoding,语法如下:
request.setCharacterEncoding("UTF-8");;表明提交过来的数据是用UTF-8编码的。根据此类推,其他也应该是一样的吧。推荐使用UTF-8,这样简体和繁体文件就不头疼了。
返回生成页面字符问题
JBuilber中的Servlet向导生成的代码中有讲解。
private static final String CONTENT_TYPE = "text/html; charset=UTF-8"; response.setContentType(CONTENT_TYPE);;剩下的利用
PrintWriter out = response.getWriter();;完成页面输出。根据此类推,其他也应该是一样的吧。推荐使用UTF-8,这样简体和繁体文件就不头疼了。
提交的数据验证问题
应该在客户端和服务器端都进行验证,比如是否为空,或者格式是否正确。
浏览器客户端当然首选JavaScript,服务器端使用Exception流程来处理比较好。
在服务器端验证数据
假设我们仅仅需要验证是否为空和能够分析出数字来,可以生成一个类来完成验证工作。当出现为空或者无法分析数字出来时,我们分别抛出带msg的相应的异常。
[color=green]
public static void checkTheSubmitData(String value, String msg); throws NullValueException { if (null == value || "".equals(value);); { throw new NullValueException(msg);; } }[/color]上面用来验证是否为空,为空抛出NullValueException异常,该异常是自定义的。msg为提供的信息,比如我们取参数时,可以告诉msg为"某某某",那么之后使用打印信息将该信息打印出来,客户就知道是什么出错。
[color=green]
public static void checkTheSubmitDataFMT(String value, String msg); { try { Integer.parseInt(value);; } catch (NumberFormatException ex); { throw new NumberFormatException(msg);; } }[/color]
这个方法用来验证是否可以分析出数字来,之后我们使用打印信息方法来告诉客户出错在哪里。
public static void outPrintExceptionMsg(PrintWriter out, String msg, HttpServletResponse response); { 此处写上你返回的信息即可。 }
使用时捕获对应的异常,在处理中调用该打印方法来输出信息。
在客户端验证数据
主要是用JavaScript来处理。
代码网上的例子很多,关键一点就是需要用对象来想象form中的name即可,然后生成function来判断信息,不正确就return false;即可。
哎,弄个小型的Web Application需要知道的东西还真不少,起码HTML要知道吧,URL概念要很清楚吧,JSP技术就不用说了,JavaScript也少不了,数据库就别谈了,呵呵,Servlet也要知道,否则怎么去理解JSP和Servlet是类似的呢。好了,Web Server需要搞一个吧,还好,有个Tomcat比较省事点,天,还有什么要会的,当然是Java基础了。