我想在JavaEE中编写一个简单的表单。为此,我创建了一个简单的form.jsp文件。该文件的代码如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</head>
<body>
<% if(request.getAttribute("action")!=null) {
String action=(String) request.getAttribute("action");
if(action.equals("success")) { %>
<br>Added user correctly.</br>
<% } else { %>
<br>Error : <%=action %></br>
<% }
} else { %>
<u>Rejestracja:</u>
<form action="servletAgent" method="post">
<fieldset>
<table style="text-align: right;">
<tr><td>imie: </td><td><input type="text" style="width:220px" required="required" name="name" value=""></td></tr>
</table>
<center><input type="submit" value="Register"/></center>
</fieldset>
</form>
<% } %>
</body>
</html>
在这段代码中,我们可以看到我连接到&#34; servletAgent&#34;。在&#34; servletAgent.java&#34;有一个方法doPost(),我检查输入名称是否正确,如果是,信息&#34;正确添加用户&#34;以其他方式显示&#34;错误&#34;被展示。有没有其他可能做到这一点,我的意思是这个方法很好连接到servletAgent,也许有可能不连接到servletAgent并在form.jsp文件中这样做而没有任何连接到servletAgent简化?
答案 0 :(得分:0)
也许有可能不连接到servletAgent并在form.jsp文件中执行此操作而不与servletAgent简化连接?
您可以直接在JSP中处理所有工作,只需将操作从"servletAgent"
更改为"form.jsp"
,现在您的JSP也能够评估请求,然后您可以移动代码servlet到scriptlet代码的顶部。从技术上讲,它将按预期工作,您根本不需要任何servlet来处理您的业务逻辑......
正如您在此页面中所做的那样使用scriptlet并不是最好的选择,主要是出于维护原因(还有更多其他选项,但我会关注这一点)。实现MVC模式时,基本上通过将JSP与业务逻辑分离,可以实现可维护性。例如,无论文件扩展名如何,Web UI Designer都可以将他/她想要的任何HTML5 / JS / CSS直接应用于(几乎)纯HTML页面,并且程序员可以在servlet或其他服务器端组件(如Managed)中处理业务逻辑JSF中的Bean或Spring MVC中的@Controllers
。看起来像要做的更多工作,而且直接使用JSP和Servlet时,这就是为什么有几个Java Web应用程序框架:为了简化这种维护。
更多信息: