下面我将详细讲解使用JSP + JAVABEAN + XML开发的一个例子的完整攻略。
一、JSP和JAVABEAN的基础
1. JSP
JSP(JavaServer Pages)是一种基于Java的服务器端脚本解析技术,它以HTML页面为模板,在其中加入Java代码,通过服务器端解析器对页面进行编译处理,最终生成标准的HTML页面,用于向客户端展示数据。
2. JAVABEAN
JAVABEAN(Java Beans)是一种Java语言编写的可重用组件,它允许将数据和处理方法封装在一个独立的Java类中,方便在不同的应用程序中重复使用。
二、使用JSP + JAVABEAN + XML开发的一个例子
下面我们以开发一个留言板为例,来演示如何使用JSP、JAVABEAN和XML实现,具体步骤如下:
1. 创建JAVABEAN类
我们先创建一个Java类作为留言的数据模型,命名为MessageBean
,它包括三个属性:username
, title
和text
,以及对应的get/set方法。
public class MessageBean {
private String username;
private String title;
private String text;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
2. 创建JSP页面
接着我们创建一个JSP页面用于发布留言,并实例化留言的数据模型对象。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.example.MessageBean"%>
<%
MessageBean message = new MessageBean();
%>
<form action="save.jsp" method="post">
<label>用户名:</label><input type="text" name="username"><br>
<label>标题:</label><input type="text" name="title"><br>
<label>内容:</label><textarea name="text"></textarea><br>
<input type="submit" value="提交">
</form>
3. 处理JSP页面提交的数据
接下来,我们创建save.jsp
页面来处理留言的数据,并保存到XML文件中。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.example.MessageBean"%>
<%@ page import="java.io.*, java.util.*"%>
<%
// 获取JSP页面提交的数据
String username = request.getParameter("username");
String title = request.getParameter("title");
String text = request.getParameter("text");
// 实例化数据模型对象
MessageBean message = new MessageBean();
message.setUsername(username);
message.setTitle(title);
message.setText(text);
// 保存留言到XML文件
String filePath = "/data/messages.xml";
String encoding = "utf-8";
File file = new File(application.getRealPath(filePath));
// 如果文件不存在,则创建新文件
if(!file.exists()){
// 创建XML文件
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("messages");
doc.appendChild(root);
// 写入XML文件
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, encoding);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(file);
transformer.transform(source, result);
}
// 添加一条留言到XML文件中
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(file);
Element root = doc.getDocumentElement();
Element messageElement = doc.createElement("message");
Element usernameElement = doc.createElement("username");
Element titleElement = doc.createElement("title");
Element textElement = doc.createElement("text");
usernameElement.setTextContent(username);
titleElement.setTextContent(title);
textElement.setTextContent(text);
messageElement.appendChild(usernameElement);
messageElement.appendChild(titleElement);
messageElement.appendChild(textElement);
root.appendChild(messageElement);
// 更新XML文件
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, encoding);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(file);
transformer.transform(source, result);
%>
<h2>留言发布成功</h2>
<a href="message.jsp">返回留言列表</a>
4. 查询留言列表
最后,我们创建message.jsp
页面,在其中读取XML文件中的留言列表,并展示给用户。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.example.MessageBean"%>
<%@ page import="java.io.*, java.util.*, javax.xml.parsers.*, org.w3c.dom.*"%>
<%
// 读取XML文件中的留言列表
String filePath = "/data/messages.xml";
File file = new File(application.getRealPath(filePath));
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(file);
NodeList list = doc.getElementsByTagName("message");
%>
<h2>留言列表</h2>
<table border="1" width="100%">
<tr>
<th>用户名</th>
<th>标题</th>
<th>内容</th>
</tr>
<% for(int i=0; i<list.getLength(); i++){ %>
<%
MessageBean message = new MessageBean();
Element item = (Element)list.item(i);
message.setUsername(item.getElementsByTagName("username").item(0).getTextContent());
message.setTitle(item.getElementsByTagName("title").item(0).getTextContent());
message.setText(item.getElementsByTagName("text").item(0).getTextContent());
%>
<tr>
<td><%= message.getUsername() %></td>
<td><%= message.getTitle() %></td>
<td><%= message.getText() %></td>
</tr>
<% } %>
</table>
以上就是使用JSP、JAVABEAN、XML开发的一个留言板例子的完整攻略了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用JSP + JAVABEAN + XML 开发的一个例子 - Python技术站