如何避免servlet在JavaEE中编写一些jsp文件?

时间:2014-03-18 15:04:03

标签: java jsp java-ee servlets

我想在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简化?

1 个答案:

答案 0 :(得分:0)

  

也许有可能不连接到servletAgent并在form.jsp文件中执行此操作而不与servletAgent简化连接?

您可以直接在JSP中处理所有工作,只需将操作从"servletAgent"更改为"form.jsp",现在您的JSP也能够评估请求,然后您可以移动代码servlet到scriptlet代码的顶部。从技术上讲,它将按预期工作,您根本不需要任何servlet来处理您的业务逻辑......

BUT!

正如您在此页面中所做的那样使用scriptlet并不是最好的选择,主要是出于维护原因(还有更多其他选项,但我会关注这一点)。实现MVC模式时,基本上通过将JSP与业务逻辑分离,可以实现可维护性。例如,无论文件扩展名如何,Web UI Designer都可以将他/她想要的任何HTML5 / JS / CSS直接应用于(几乎)纯HTML页面,并且程序员可以在servlet或其他服务器端组件(如Managed)中处理业务逻辑JSF中的Bean或Spring MVC中的@Controllers。看起来像要做的更多工作,而且直接使用JSP和Servlet时,这就是为什么有几个Java Web应用程序框架:为了简化这种维护。

更多信息: