完成2个页面的编写,一个页面完成文本的输入,另外一个页面显示该文本的 长度 (Javaweb相关技术完成,并给出完整代码和目录结构)
时间: 2024-10-28 21:08:46 浏览: 21
在JavaWeb开发中,我们可以使用Servlet和JSP技术来构建这样的功能。这里是一个基本的目录结构示例:
```
webapp/
|-- index.jsp (展示文本长度的页面)
|-- input.jsp (用户输入文本的页面)
|-- WEB-INF/
| |-- web.xml (部署描述符文件)
| |-- classes/ (存放Java类文件,如Servlets)
|-- java/
| |-- InputTextServlet.java (处理文本输入的Servlet)
| |-- TextLengthServlet.java (获取并显示文本长度的Servlet)
```
**index.jsp:**
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>显示文本长度</title>
</head>
<body>
<h2>请输入文本:</h2>
<form action="<%= RequestDispatcher.getServletContext().getContextPath() %>/input" method="post">
<textarea rows="4" cols="50" name="inputText"></textarea><br>
<input type="submit" value="提交">
</form>
<%@ include file="/WEB-INF/classes/TextLengthServlet.java" %> <!-- 显示长度 -->
</body>
</html>
```
**input.jsp:**
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>输入文本</title>
</head>
<body>
<h1>在这里输入文本</h1>
<form action="<%= RequestDispatcher.getServletContext().getContextPath() %>/input" method="post">
<textarea rows="4" cols="50" name="inputText"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
**InputTextServlet.java:**
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class InputTextServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String text = request.getParameter("inputText");
// ... 保存文本到数据库或其他地方
response.sendRedirect(request.getContextPath() + "/index"); // 跳转回index.jsp显示结果
}
}
```
**TextLengthServlet.java:**
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class TextLengthServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String inputText = (String) request.getAttribute("inputText"); // 获取从InputTextServlet传递过来的文本
int length = inputText.length();
response.setContentType("text/plain");
response.getWriter().write("输入文本的长度是: " + length);
}
}
```
注意,这里的代码仅提供了一个基本框架,实际应用中你需要添加错误处理、数据持久化以及可能的前端验证等。同时,为了部署,还需要将`InputTextServlet`和`TextLengthServlet`注册到`web.xml`的`<servlet-mapping>`标签中。
阅读全文