自己动手写了个J2EE应用,其实没有这么夸张了,只是用到其中很小的内容,感觉有些杀鸡用牛刀了,哈哈。
现在随笔一下:
希望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基础了。
分享到:
相关推荐
《Hibernate_first_J2EE框架详解》 在Java企业级应用开发中,J2EE框架扮演着至关重要的角色,它提供了一种标准化的方式来构建可扩展、高效且可靠的分布式应用程序。其中,Hibernate作为一款强大的对象关系映射(ORM...
在"first j2EE"的学习之旅中,我们将深入理解J2EE的核心概念,以及如何利用其特性来处理复杂的业务逻辑和数据管理。 1. **J2EE架构**:J2EE架构由一系列层构成,包括客户端层、Web层、业务逻辑层(EJB)和数据访问...
The J2EE Architect's Handbook: How to be a... Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget, you will refer to this handbook again and again.
Guide to architecting, designing, and building J2EE applications. Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget
This handbook is a concise guide to ... Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget, you will refer to this handbook again and again.
This handbook is a concise guide to ... Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget, you will refer to this handbook again and again.
Creating Your First LiveCycle Application
J2EE架构师手册 The J2EE Architect's ... Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget, you will refer to this handbook again and again.
The J2EE Architect's Handbook: How to be a... Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget, you will refer to this handbook again and again.
The J2EE Architect s Handbook: How to be a... Whether you re architect your first J2EE application or looking to keep your projects on-time and on-budget, you will refer to this handbook again and again.
【FirstApplication的实现】 在IT领域,Web项目开发是核心任务之一,而“FirstApplication”的实现则是一个初学者常见的入门项目。这个项目旨在帮助开发者掌握基础的Web应用程序开发流程,通常涉及Java、JSP(Java...
在本节“斯坦福 Lecture 2 My First iOS Application”中,我们将深入探讨如何构建你的第一个iOS应用程序,一个简单的计算器。这个课程是针对初学者的,旨在帮助他们掌握iOS开发的基础知识,尤其是使用Xcode和Swift...
Web Dynpro 入门教材,里边有文档和对应的例子,例子导入工程中就可以运行,如果有错误,请查看例子的IDE版本跟您现在使用的版本是否一致,如果不一致,您可以新建Web Dynpro工程,然后把例子的src目录覆盖您新建的...
【标题】: "my-first-application: 这是我的第一个Android应用" 这个标题表明,你正在学习或分享一个关于创建Android应用程序的基础教程。"my-first-application"是项目的基本命名,通常用于新手开发者入门练习,...
在`springboot-first-application`中,你会看到一个名为`Application`的主类,它通过`@SpringBootApplication`注解标记。这个注解结合了`@Configuration`,`@EnableAutoConfiguration`和`@ComponentScan`,使得...
否则,我们可以采取措施,如记录日志、显示错误消息或重定向。 总的来说,J2EE过滤器Filter是构建安全、高效Web应用的关键工具。它们允许开发者在请求处理链中插入自定义逻辑,确保数据的安全性、合规性和一致性。...
《跨平台应用开发初探——基于First_Application_CrossPlat》 在当今的移动互联网时代,跨平台应用开发已经成为开发者的重要需求。"First_Application_CrossPlat"项目为我们提供了一个入门级的实例,帮助我们理解...
在实际开发中,"first"可能指的是项目的初始阶段或者第一个版本,这表明系统还在持续迭代和优化的过程中。开发者可能会逐步加入更多的功能,如推荐系统、评论模块、在线阅读等,以提升用户体验。 总的来说,基于...
总之,ASP.NET MVC Application Using Entity Framework Code First 是一种高效的开发方式,它结合了强大的Web框架、ORM工具和灵活的数据建模策略,让开发者能更专注于业务需求,而非底层基础设施。对于想要快速构建...