gpt4 book ai didi

mysql - 使用 Servlet、JSP、EJB 更新成员(member)(在网站上注册)的一个(或多个)字段

转载 作者:行者123 更新时间:2023-11-30 23:31:40 25 4
gpt4 key购买 nike

我正在为一家“租车公司”开发网站程序

用户可以注册(完成)——使用 Servlet & Jsp 页面如果已经是成员(member)则登录(完成)- 使用 java bean、servlet 和 jsp进行预订(完成)删除预订(完成)

我将 netbeans IDE 与 mysql(表:汽车、预订、成员(member))一起使用,并通过 JDBC 从网页连接到 MYSQL。现在我在这部分任务上有点卡住了:

更新他/她的帐户(即详细信息)

为什么?想到了不同的替代方案,例如要求用户输入用户名,然后显示包含成员详细信息的记录,显示复选框以便用户检查他/她想要更改的字段,然后使用 servlet 中的普通查询来更新数据库。然而,这在我看来并不是最好或“最好”的选择。

我想显示与已填充文本框的寄存器“相同”的网页(因此,如果用户输入“Maria”作为名称,文本框将已经有 Maria),以便可以在那里进行编辑然后在按下提交时更新该特定成员的记录。我是否必须使用 session 方法(.setAttribute 等)来保留成员的用户名,然后使用 String uname request.getParameter("username").toString(); 在文本框中显示信息? (例如)

你会怎么做呢?非常感谢意见和代码片段

谢谢 :))

最佳答案

只需让 JSP 相应地生成所有这些值都已预填充、预选和预检查的 HTML。在下面的示例中,我假设您当前登录的用户为 ${user}。 .

对于输入元素,只需打印 value属性:

<input type="text" name="username" value="${fn:escapeXml(user.username)}" />
<input type="text" name="email" value="${fn:escapeXml(user.email)}" />
<input type="text" name="firstname" value="${fn:escapeXml(user.firstname)}" />
<input type="text" name="lastname" value="${fn:escapeXml(user.lastname)}" />

(fn:escapeXml() 在这里非常重要,因为它可以防止可能的 XSS attack 漏洞)

对于下拉菜单,只需有条件地打印 selected <option> 上的属性:

<select name="country">
<c:forEach items="${data.countries}" var="country">
<option value="${country.code}" ${user.countryCode == country.code ? 'selected' : ''}>${country.name}</option>
</c:forEach>
</select>

对于单选按钮和复选框,只是有条件地打印 checked属性:

<c:forEach items="${data.genders}" var="gender">
<input type="radio" name="gender" value="${gender.id}" ${user.genderId == gender.id ? 'checked' : ''}" /> ${gender.description}
</c:forEach>

收集提交的值应该以同样的方式进行。唯一的区别是您不需要创建新用户,而只需将当前登录的用户更新为可用 ${user} .

关于mysql - 使用 Servlet、JSP、EJB 更新成员(member)(在网站上注册)的一个(或多个)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com