早上好,伙计们,
我正在使用eclipse并学习如何使用JSP进行编码,我使用bootstrap创建了一个简单的表单(代码和密码)(使其看起来很漂亮),我想每次点击按钮“Se connecter”(提交),在文本文件中创建或添加点击者的时间和名称(codeOp.getText())。
这是我的表格(显示在法国抱歉):
R -e "shiny::runApp('../Shiny_visualization')" --args 'db_path'
这是我正在考虑添加的代码(或者至少是这样的代码):
<div id="page-content-wrapper">
<div class="container col-sm-offset-2 col-sm-6">
<form class="form-signin" action="Page1.jsp" method="GET">
<h2 class="form-signin-heading">Veuillez vous connectez</h2>
<label for="codeOp" class="sr-only">Code de l'opérateur</label>
<input type="number" id="CodeOp" class="form-control" placeholder="Code l'opérateur" ></input>
<label for="password" class="sr-only">Mot de passe</label>
<input type="password" id="password" class="form-control" placeholder="Password" ></input>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"/> Se souvenir de moi.
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit"/>Se connecter
</form>
</div>
</div>
我们的想法是创建一个简单的日志文件,显示每次点击的时间(稍后可以使用日期添加)和点击用户的名称(CodeOP)。
看起来很简单,但我不知道在哪里编写代码,因为不鼓励在JSP页面中编写java代码。
感谢提前阅读!准备被批评;)
答案 0 :(得分:0)
您可以将此内容发送到后端,而不是使用JSP内联编写此内容。然后,您可以在后端执行该代码。您希望将JSP按钮绑定到后面的操作。当您有一个表单并提交它时,这是一个贯穿您创建的“Servlet”的操作。
但是,您的方法应该是POST方法,而不是GET方法。因此,此行<form class="form-signin" action="page1" method="GET">
应更改为类似的内容
<form class="form-signin" action="Page1" method="POST">
您无需将.jsp添加到操作中。该操作是一个将传递给我们的servlet的参数。
然后,当操作与表单中的操作匹配时,您可以在servlet中执行后端的一些(普通java)代码。
为了使这更具体一点,在servlet中你有一个post方法。这看起来大致像
public class SomeServlet extends HttpServlet{
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
// do something with the form data.
// I would use another class for the filewriting though
String content = request.getParameter('codeOp');
File file = new File("log.txt");
FileWriter fw = new FileWriter(file.getAbsoluteFile();
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
}
}
我在没有实际测试的情况下写了这个,但更多的是让你知道如何做到这一点。当您有多个表单时,可以使用表单的ACTION
来确定哪个表单已在您的servlet中发送了POST请求。实际上为所有后端逻辑创建一些后端类是明智的,并且从Servlet
只调用一些Facade
类,然后可以调用后端的正确类来创建日志等。 。
答案 1 :(得分:0)
您是否考虑过使用现有的webapp日志记录文件?
尝试在jsp页面application.log(String.format("EVENT - User %s, Action %s", "myuser", "click-1"))
中调用日志功能,然后查找j2ee服务器的日志文件。
这适用于并发多个用户请求的开箱即用,使用自定义FileOutputStream,您需要确保它已正确同步。
使用grep或类似方法从日志文件中收集事件。