有没有更有效的方法来在servlet中输出html?

Java程序

我在下面有一个servlet,它从数据库中检索很多信息,然后以表格形式打印出来。我正在使用out.println(html代码)在此页面上输出所有内容。有没有在Servlet中编写此html代码的更有效方法?对于我要添加的每个html元素/属性等,我都必须使用out.println(<head>)例如。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class PersonalInfoOutput extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();

            HttpSession session = request.getSession(false);
            String employeeid = ""; 

                       if(session != null) { 
                           employeeid = (String)session.getAttribute("employeeid"); 
                       }


            boolean st = false;
            try { 
                Class.forName("com.mysql.jdbc.Driver").newInstance(); 
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll_system", "root", ""); 
                PreparedStatement ps = con.prepareStatement("select employeeID,  FirstName, LastName, Admin, DOB, Address, Email, HourlyRate, Gender, ALeaveBalance, SLeaveBalance, ActiveStatus, Role, BSB, BankName, AccNumber, SuperNumber, SuperCompany from payroll_system.employee_info where employeeID = ?");
                ps.setString(1, employeeid);
                ResultSet rs = ps.executeQuery(); 
                st = rs.next(); 
                if(st){
                boolean adminTrue = rs.getBoolean("Admin"); 
                boolean activeTrue = rs.getBoolean("ActiveStatus"); 

                out.println("<html>");
                out.println("<head>");
                out.println("<style>"); 
                out.println("table { border-collapse: collapse; width: 50%; } th, td { text-align: left; padding: 8px; } tr:nth-child(even){background-color: #f2f2f2}");
                out.println("tr:hover {background-color: #e2f4ff;}");
                out.println("</style>");
                out.println("<link rel = stylesheet type = text/css href = main.css>");
                out.println("<link rel = stylesheet type = text/css href = sidebar.css>");
                out.println("<title>Personal Information</title>");
                out.print("</head>");

                out.println("<body>");

                if(adminTrue){ 
                    out.println("<ul>");
                    out.println("<li><a class=active >View Personal Information</a></li>");
                    out.println("<li><a href=xyz>View Expense Claims</a></li>");
                    out.println("<li><a href=xyz>View Payslips</a></li>");
                    out.println("<li><a href=changePassAdmin.html>Change Password</a></li>");
                    out.println("<li><a href=xyz>Maintain Employee Information</a></li>");
                    out.println("<li><a href=xyz>Maintain Tax Information</a></li>");
                    out.println("<li><a href=xyz>Maintain Payroll Items</a></li>");
                    out.println("<li><a href=xyz>Maintain Timesheet</a></li>");
                    out.println("<li><a href=xyz>Maintain Employee Expenses</a></li>");
                    out.println("<li><a href=xyz>Run Payroll</a></li>");
                    out.println("<li><a href=xyz>Generate Reports</a></li>");
                    out.println("</ul>");
                    out.println("<div style=margin-left:25%;padding:1px 16px;height:1000px;>");
                    out.println("</div>");
                }
                else if(!adminTrue){ 
                    out.println("<ul>");
                    out.println("<li><a class=active href=PersonalInfoOutput>View Personal Information</a></li>");
                    out.println("<li><a href=xyz>View Expense Claims</a></li>");
                    out.println("<li><a href=xyz>View Payslips</a></li>");
                    out.println("<li><a href=.html>Change Password</a></li>");
                    out.println("</ul>");
                    out.println("<div style=margin-left:25%;padding:1px 16px;height:1000px;>");
                    out.println("</div>");

                }


                out.println("<h1>Personal Information</h1>");
                out.println("<table border =1>");

                out.println("<tr>");
                out.println("<td>Name</td>");
                out.println("<td>"+ rs.getString("FirstName") + " " + rs.getString("LastName") + "</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Employee ID</td>");
                out.println("<td>"+ rs.getString("employeeID")+"</td>");
                out.println("</tr>");

                if(adminTrue) { 
                    out.println("<tr>");
                    out.println("<td>Admin</td>");
                    out.println("<td>Yes</td>");
                    out.println("</tr>");
                }
                else{ 
                    out.println("<tr>");
                    out.println("<td>Admin</td>");
                    out.println("<td>No</td>");
                    out.println("</tr>");
                }

                out.println("<tr>");
                out.println("<td>Date Of Birth</td>");
                out.println("<td>"+ rs.getString("DOB")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Residential Address</td>");
                out.println("<td>"+ rs.getString("Address")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Email</td>");
                out.println("<td>"+ rs.getString("Email")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Hourly Income</td>");
                out.println("<td>"+ "$" + rs.getString("HourlyRate")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Gender</td>");
                out.println("<td>"+ rs.getString("Gender")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Annual Leave Balance</td>");
                out.println("<td>"+ rs.getString("ALeaveBalance")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Sick Leave Balance</td>");
                out.println("<td>"+ rs.getString("SLeaveBalance")+"</td>");
                out.println("</tr>");

                if(activeTrue) { 
                    out.println("<tr>");
                    out.println("<td>Currently Active</td>");
                    out.println("<td>Yes</td>");
                    out.println("</tr>");
                }
                else { 
                    out.println("<tr>");
                    out.println("<td>Currently Active</td>");
                    out.println("<td>No</td>");
                    out.println("</tr>");
                }

                out.println("<tr>");
                out.println("<td>Role</td>");
                out.println("<td>"+ rs.getString("Role")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>BSB</td>");
                out.println("<td>"+ rs.getString("BSB")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Bank Name</td>");
                out.println("<td>"+ rs.getString("BankName")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Bank Account Number</td>");
                out.println("<td>"+ rs.getString("AccNumber")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Superannuation Company</td>");
                out.println("<td>"+ rs.getString("SuperCompany")+"</td>");
                out.println("</tr>");

                out.println("<tr>");
                out.println("<td>Superannuation Number</td>");
                out.println("<td>"+ rs.getString("SuperNumber")+"</td>");
                out.println("</tr>");

                out.println("</table>");
                out.println("</body>");
                out.println("</html>");

                }
             }catch(Exception e)
              {
                  e.printStackTrace();
              }
            out.close();
    }

    }
一月

out.println()在可读性方面有点难看-但是与I / O时间相比,这些调用的开销很小。

在循环中使用+进行字符串连接可能会损害您的内存占用(而且也不是最快的方法)。考虑一下您拥有的这一行:

     out.println("<td>"+ rs.getString("FirstName") + " " + rs.getString("LastName") + "</td>");      

通过使用以下代码进行编码,您可以获得可读性和速度,并且剩下的char []更少被垃圾回收format()

    out.format ("<td>%s %s</td>", rs.getString  ("FirstName"), rs.getString  ("LastName"));

更多注意事项

每次调用servlet时,就创建并连接一个新的数据库连接。这将严重影响您的性能和可伸缩性。您应该考虑使用从中获取预连接​​的连接的连接池。您获得的性能将弥补很多String concat或println调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有更有效的方法来创建分组列表

有没有更有效的方法来搜索特定像素的图像?

有没有更有效的方法来重构Ruby上哈希的迭代?

有没有更有效的方法来存储关键字参数?

有没有更有效的方法来编写这段代码?

有没有更有效的方法来排序此数组?

有没有更有效的方法来编码此“ 2 Sum”问题

有没有更有效的方法来切片多维数组

有没有更有效的方法来实现这一目标?

有没有更有效的方法来执行此嵌套SQL查询?

有没有更快,更有效的方法来保存python字典?

有没有更有效的方法来运行多个UPDATE SQL语句

有没有更有效的方法来制作多步动画?

有没有更有效的方法来遍历数据帧?

有没有更有效的方法来包装浮点数?

有没有更有效的方法来改变点击按钮的样式?

有没有更有效的方法来规范字段的字符数?

有没有更有效的方法来按数组分组?

有没有更有效的方法来运行此功能?

Python:有没有更有效的方法来转换月份的 int 值?

有没有更有效的方法来计算距离矩阵?

有没有更有效的方法来在 Javascript 中的对象中获取多个最小值?

有没有比python中的networkx更有效的方法来计算最短路径问题?

有没有一种更有效的方法来在Access中存储对象容器?

有没有更有效/更优雅的方法来从开关案例中的功能更改数据?

有没有更有效的方法来增加字典中每个键的值?

在Python 3中,有没有更有效的方法来进行这些循环?

有没有更有效的方法来检查字符串中的字符?

有没有更有效的方法来为 Databricks SQL 中的 bin 值编写代码?